diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 000000000..8e45d030f
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1 @@
+*.pbxproj merge=union
diff --git a/documentation/Coding Style.markdown b/.github/CONTRIBUTING.md
similarity index 100%
rename from documentation/Coding Style.markdown
rename to .github/CONTRIBUTING.md
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
new file mode 100644
index 000000000..4e7381cd7
--- /dev/null
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -0,0 +1,6 @@
+Please consider the following issues before submitting a pull request:
+
+-[] Support all platforms (Mac, iOS, and tvOS)
+-[] Pass Travis build validation
+-[] Include unit tests where appropriate
+-[] If adding a new feature, consider including a demo in the *Plot Gallery* example app
\ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
index 067d42d10..1df945ce3 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,18 +1,28 @@
language: objective-c
+osx_image: xcode11
-env:
+ios_env:
SDK:iphonesimulator
SDK:iphoneos
+tvos_env:
+ TVSDK:appletvsimulator
+ TVSDK:appletvos
+
# Framework builds
-script: xcodebuild -project framework/CorePlot.xcodeproj -target CorePlot -configuration Release
-script: xcodebuild -project framework/CorePlot-CocoaTouch.xcodeproj -target CorePlot-CocoaTouch -sdk ${SDK} -configuration Release
+script: xcodebuild -project framework/CorePlot.xcodeproj -target "CorePlot Mac" -configuration Release
+script: xcodebuild -project framework/CorePlot.xcodeproj -target "CorePlot iOS" -sdk ${SDK} -configuration Release
+script: xcodebuild -project framework/CorePlot.xcodeproj -target "CorePlot tvOS" -sdk ${TVSDK} -configuration Release
+script: xcodebuild -project framework/CorePlot.xcodeproj -target "CorePlot-CocoaTouch" -sdk ${SDK} -configuration Release
# Unit tests
-script: xcodebuild -project framework/CorePlot.xcodeproj -target UnitTests -configuration Release
+script: xcodebuild -project framework/CorePlot.xcodeproj -target "UnitTests Mac" -configuration Release
+script: xcodebuild -project framework/CorePlot.xcodeproj -target "UnitTests iOS" -sdk ${SDK} -configuration Release
+script: xcodebuild -project framework/CorePlot.xcodeproj -target "UnitTests tvOS" -sdk ${TVSDK} -configuration Release
+script: xcodebuild -project framework/CorePlot.xcodeproj -target "CorePlot-CocoaTouchTests" -sdk ${SDK} -configuration Release
# Mac examples
-script: xcodebuild -project examples/CorePlotGallery/Plot_Gallery_Mac.xcodeproj -target "Plot Gallery-Mac" -configuration Release
+script: xcodebuild -project examples/CorePlotGallery/Plot_Gallery.xcodeproj -target "Plot Gallery-Mac" -configuration Release
script: xcodebuild -project examples/CPTTestApp/CPTTestApp.xcodeproj -target CPTTestApp -configuration Release
script: xcodebuild -project examples/DatePlot/DatePlot.xcodeproj -target DatePlot -configuration Release
script: xcodebuild -project examples/DropPlot/DropPlot.xcodeproj -target DropPlot -configuration Release
@@ -20,12 +30,15 @@ script: xcodebuild -project examples/MinorTickLabels/minorTickFormatter.xcodepro
script: xcodebuild -project examples/RangePlot/RangePlot.xcodeproj -target RangePlot -configuration Release
# iOS examples
-script: xcodebuild -project examples/CorePlotGallery/Plot_Gallery_iOS.xcodeproj -target "Plot Gallery-iOS" -sdk ${SDK} -configuration Release
+script: xcodebuild -project examples/CorePlotGallery/Plot_Gallery.xcodeproj -target "Plot Gallery-iOS" -sdk ${SDK} -configuration Release
script: xcodebuild -project examples/AAPLot/AAPLot.xcodeproj -target AAPLot -sdk ${SDK} -configuration Release
script: xcodebuild -project examples/CPTTestApp-iPad/CPTTestApp-iPad.xcodeproj -target CPTTestApp-iPad -sdk ${SDK} -configuration Release
script: xcodebuild -project examples/CPTTestApp-iPhone/CPTTestApp-iPhone.xcodeproj -target CPTTestApp-iPhone -sdk ${SDK} -configuration Release
script: xcodebuild -project examples/CPTTestApp-iPhone-SpeedTest/CPTTestApp-iPhone.xcodeproj -CPTTestApp-iPhone AAPLot -sdk ${SDK} -configuration Release
script: xcodebuild -project examples/StockPlot/StockPlot.xcodeproj -target StockPlot -sdk ${SDK} -configuration Release
+# tvOS examples
+script: xcodebuild -project examples/CorePlotGallery/Plot_Gallery.xcodeproj -target "Plot Gallery-tvOS" -sdk ${TVSDK} -configuration Release
+
# Quartz Composer plugin
script: xcodebuild -project QCPlugin/CorePlotQCPlugin.xcodeproj -target CorePlotQCPlugin -configuration Release
diff --git a/CorePlot-latest.podspec b/CorePlot-latest.podspec
index c92026a5b..3b958f7e4 100644
--- a/CorePlot-latest.podspec
+++ b/CorePlot-latest.podspec
@@ -2,7 +2,7 @@ Pod::Spec.new do |s|
s.name = 'CorePlot'
s.version = '99.99.99'
s.license = 'BSD'
- s.summary = 'Cocoa plotting framework for Mac OS X and iOS.'
+ s.summary = 'Cocoa plotting framework for macOS, iOS, and tvOS.'
s.homepage = 'https://github.com/core-plot'
s.social_media_url = 'https://twitter.com/CorePlot'
s.documentation_url = 'http://core-plot.github.io'
@@ -14,26 +14,32 @@ Pod::Spec.new do |s|
s.source = { :git => 'https://github.com/core-plot/core-plot.git' }
- s.description = 'Core Plot is a plotting framework for OS X and iOS. It provides 2D visualization ' \
+ s.description = 'Core Plot is a plotting framework for macOS, iOS, and tvOS. It provides 2D visualization ' \
'of data, and is tightly integrated with Apple technologies like Core Animation, ' \
'Core Data, and Cocoa Bindings.'
- s.ios.deployment_target = '5.0'
- s.osx.deployment_target = '10.7'
+ s.ios.deployment_target = '8.0'
+ s.osx.deployment_target = '10.8'
+ s.tvos.deployment_target = '9.0'
s.ios.header_dir = 'ios'
s.osx.header_dir = 'osx'
+ s.tvos.header_dir = 'tvos'
- s.source_files = 'framework/Source/*.{h,m}', 'framework/CocoaPods/*.h', 'framework/TestResources/CorePlotProbes.d'
+ s.source_files = 'framework/Source/*.{h,m}', 'framework/CocoaPods/*.h'
s.exclude_files = '**/*{TestCase,Tests}.{h,m}', '**/mainpage.h'
s.ios.source_files = 'framework/CorePlot-CocoaTouch.h', 'framework/iPhoneOnly/*.{h,m}'
+ s.tvos.source_files = 'framework/iPhoneOnly/*.{h,m}'
s.osx.source_files = 'framework/MacOnly/*.{h,m}'
- s.private_header_files = '**/_*.h', '**/CorePlotProbes.h'
+ s.private_header_files = '**/_*.h'
- s.requires_arc = true
- s.xcconfig = { 'ALWAYS_SEARCH_USER_PATHS' => 'YES' }
+ s.requires_arc = true
+ s.ios.xcconfig = { 'HEADER_SEARCH_PATHS' => '"${PODS_ROOT}/Headers/Private/CorePlot/ios"' }
+ s.osx.xcconfig = { 'HEADER_SEARCH_PATHS' => '"${PODS_ROOT}/Headers/Private/CorePlot/osx"' }
+ s.tvos.xcconfig = { 'HEADER_SEARCH_PATHS' => '"${PODS_ROOT}/Headers/Private/CorePlot/tvos"' }
- s.frameworks = 'QuartzCore', 'Accelerate'
+ s.frameworks = 'QuartzCore'
s.ios.frameworks = 'UIKit', 'Foundation'
+ s.tvos.frameworks = 'UIKit', 'Foundation'
s.osx.frameworks = 'Cocoa'
end
\ No newline at end of file
diff --git a/CorePlot.podspec b/CorePlot.podspec
index 3945d1b05..d6906a089 100644
--- a/CorePlot.podspec
+++ b/CorePlot.podspec
@@ -1,8 +1,8 @@
Pod::Spec.new do |s|
s.name = 'CorePlot'
- s.version = '1.6'
+ s.version = '2.3'
s.license = 'BSD'
- s.summary = 'Cocoa plotting framework for Mac OS X and iOS.'
+ s.summary = 'Cocoa plotting framework for macOS, iOS, and tvOS.'
s.homepage = 'https://github.com/core-plot'
s.social_media_url = 'https://twitter.com/CorePlot'
s.documentation_url = 'http://core-plot.github.io'
@@ -12,28 +12,34 @@ Pod::Spec.new do |s|
'Eric Skroch' => 'eskroch@mac.com',
'Barry Wark' => 'barrywark@gmail.com' }
- s.source = { :git => 'https://github.com/core-plot/core-plot.git', :tag => 'release_1.6'}
+ s.source = { :git => 'https://github.com/core-plot/core-plot.git', :tag => 'release_2.3'}
- s.description = 'Core Plot is a plotting framework for OS X and iOS. It provides 2D visualization ' \
+ s.description = 'Core Plot is a plotting framework for macOS, iOS, and tvOS. It provides 2D visualization ' \
'of data, and is tightly integrated with Apple technologies like Core Animation, ' \
'Core Data, and Cocoa Bindings.'
- s.ios.deployment_target = '5.0'
- s.osx.deployment_target = '10.7'
+ s.ios.deployment_target = '8.0'
+ s.osx.deployment_target = '10.8'
+ s.tvos.deployment_target = '9.0'
s.ios.header_dir = 'ios'
s.osx.header_dir = 'osx'
+ s.tvos.header_dir = 'tvos'
- s.source_files = 'framework/Source/*.{h,m}', 'framework/CocoaPods/*.h', 'framework/TestResources/CorePlotProbes.d'
+ s.source_files = 'framework/Source/*.{h,m}', 'framework/CocoaPods/*.h'
s.exclude_files = '**/*{TestCase,Tests}.{h,m}', '**/mainpage.h'
s.ios.source_files = 'framework/CorePlot-CocoaTouch.h', 'framework/iPhoneOnly/*.{h,m}'
+ s.tvos.source_files = 'framework/iPhoneOnly/*.{h,m}'
s.osx.source_files = 'framework/MacOnly/*.{h,m}'
- s.private_header_files = '**/_*.h', '**/CorePlotProbes.h'
+ s.private_header_files = '**/_*.h'
- s.requires_arc = true
- s.xcconfig = { 'ALWAYS_SEARCH_USER_PATHS' => 'YES' }
+ s.requires_arc = true
+ s.ios.xcconfig = { 'HEADER_SEARCH_PATHS' => '"${PODS_ROOT}/Headers/Private/CorePlot/ios"' }
+ s.osx.xcconfig = { 'HEADER_SEARCH_PATHS' => '"${PODS_ROOT}/Headers/Private/CorePlot/osx"' }
+ s.tvos.xcconfig = { 'HEADER_SEARCH_PATHS' => '"${PODS_ROOT}/Headers/Private/CorePlot/tvos"' }
- s.frameworks = 'QuartzCore', 'Accelerate'
+ s.frameworks = 'QuartzCore'
s.ios.frameworks = 'UIKit', 'Foundation'
+ s.tvos.frameworks = 'UIKit', 'Foundation'
s.osx.frameworks = 'Cocoa'
end
\ No newline at end of file
diff --git a/License.txt b/License.txt
index 3706aaebe..fbd7853fe 100644
--- a/License.txt
+++ b/License.txt
@@ -1,9 +1,13 @@
-Copyright (c) 2014, Drew McCormack, Brad Larson, Eric Skroch, Barry Wark, Dirkjan Krijnders, Rick Maddy, Vijay Kalusani, Caleb Cannon, Jeff Buck, Thomas Elstner, Jeroen Leenarts, Craig Hockenberry, Hartwig Wiesmann, Koen van der Drift, Nino Ag, Mike Lischke, Trevor Harmon, Travis Fischer, Graham Mueller, Rafał Wójcik, Mike Rossetti, Michael Merickel, Ingmar Stein, and Victor Martin Garcia.
+Copyright (c) 2020, Drew McCormack, Brad Larson, Eric Skroch, Barry Wark, Dirkjan Krijnders, Rick Maddy, Vijay Kalusani, Caleb Cannon, Jeff Buck, Thomas Elstner, Jeroen Leenarts, Craig Hockenberry, Hartwig Wiesmann, Koen van der Drift, Nino Ag, Mike Lischke, Trevor Harmon, Travis Fischer, Graham Mueller, Rafał Wójcik, Mike Rossetti, Michael Merickel, Lane Roathe, Ingmar Stein, Sean Holbert, Victor Martin Garcia, Jérôme Morissard, Demitri Muna, Tim Monzures, Kirill Yakimovich, Tom Izaks, Pascal Freiburghaus, Fred Potter, and Aurélien Hugelé.
+
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+
Neither the name of the Core Plot Project nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/QCPlugin/Info.plist b/QCPlugin/Base.lproj/Info.plist
similarity index 100%
rename from QCPlugin/Info.plist
rename to QCPlugin/Base.lproj/Info.plist
diff --git a/QCPlugin/Base.lproj/Settings.xib b/QCPlugin/Base.lproj/Settings.xib
new file mode 100644
index 000000000..fa3c596e5
--- /dev/null
+++ b/QCPlugin/Base.lproj/Settings.xib
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/QCPlugin/CPTBarPlotPlugin.h b/QCPlugin/CPTBarPlotPlugin.h
index e8ecf371d..e5fbb2bce 100644
--- a/QCPlugin/CPTBarPlotPlugin.h
+++ b/QCPlugin/CPTBarPlotPlugin.h
@@ -1,4 +1,4 @@
-#import "CorePlotQCPlugIn.h"
+#import "CorePlotQCPlugin.h"
#import
@interface CPTBarPlotPlugIn : CorePlotQCPlugIn
diff --git a/QCPlugin/CPTBarPlotPlugin.m b/QCPlugin/CPTBarPlotPlugin.m
index 1856a78fd..77d6fc9fc 100644
--- a/QCPlugin/CPTBarPlotPlugin.m
+++ b/QCPlugin/CPTBarPlotPlugin.m
@@ -1,4 +1,4 @@
-#import "CPTBarPlotPlugIn.h"
+#import "CPTBarPlotPlugin.h"
@implementation CPTBarPlotPlugIn
@@ -27,72 +27,72 @@ @implementation CPTBarPlotPlugIn
*/
@dynamic inputBaseValue, inputBarOffset, inputBarWidth, inputHorizontalBars;
-+(NSDictionary *)attributes
++(nonnull NSDictionary *)attributes
{
return @{
- QCPlugInAttributeNameKey: @"Core Plot Bar Chart",
- QCPlugInAttributeDescriptionKey: @"Bar chart"
+ QCPlugInAttributeNameKey: @"Core Plot Bar Chart",
+ QCPlugInAttributeDescriptionKey: @"Bar chart"
};
}
-+(NSDictionary *)attributesForPropertyPortWithKey:(NSString *)key
++(nullable CPTDictionary *)attributesForPropertyPortWithKey:(nullable NSString *)key
{
// A few additional ports for the bar plot chart type ...
if ( [key isEqualToString:@"inputBarWidth"] ) {
return @{
- QCPortAttributeNameKey: @"Bar Width",
- QCPortAttributeDefaultValueKey: @1.0,
- QCPortAttributeMinimumValueKey: @0.0
+ QCPortAttributeNameKey: @"Bar Width",
+ QCPortAttributeDefaultValueKey: @1.0,
+ QCPortAttributeMinimumValueKey: @0.0
};
}
if ( [key isEqualToString:@"inputBarOffset"] ) {
return @{
- QCPortAttributeNameKey: @"Bar Offset",
- QCPortAttributeDefaultValueKey: @0.5
+ QCPortAttributeNameKey: @"Bar Offset",
+ QCPortAttributeDefaultValueKey: @0.5
};
}
if ( [key isEqualToString:@"inputBaseValue"] ) {
return @{
- QCPortAttributeNameKey: @"Base Value",
- QCPortAttributeDefaultValueKey: @0.0
+ QCPortAttributeNameKey: @"Base Value",
+ QCPortAttributeDefaultValueKey: @0.0
};
}
if ( [key isEqualToString:@"inputHorizontalBars"] ) {
return @{
- QCPortAttributeNameKey: @"Horizontal Bars",
- QCPortAttributeDefaultValueKey: @NO
+ QCPortAttributeNameKey: @"Horizontal Bars",
+ QCPortAttributeDefaultValueKey: @NO
};
}
if ( [key isEqualToString:@"inputXMin"] ) {
return @{
- QCPortAttributeNameKey: @"X Range Min",
- QCPortAttributeDefaultValueKey: @0.0
+ QCPortAttributeNameKey: @"X Range Min",
+ QCPortAttributeDefaultValueKey: @0.0
};
}
if ( [key isEqualToString:@"inputXMax"] ) {
return @{
- QCPortAttributeNameKey: @"X Range Max",
- QCPortAttributeDefaultValueKey: @5.0
+ QCPortAttributeNameKey: @"X Range Max",
+ QCPortAttributeDefaultValueKey: @5.0
};
}
if ( [key isEqualToString:@"inputYMin"] ) {
return @{
- QCPortAttributeNameKey: @"Y Range Min",
- QCPortAttributeDefaultValueKey: @0.0
+ QCPortAttributeNameKey: @"Y Range Min",
+ QCPortAttributeDefaultValueKey: @0.0
};
}
if ( [key isEqualToString:@"inputYMax"] ) {
return @{
- QCPortAttributeNameKey: @"Y Range Max",
- QCPortAttributeDefaultValueKey: @5.0
+ QCPortAttributeNameKey: @"Y Range Max",
+ QCPortAttributeDefaultValueKey: @5.0
};
}
@@ -114,7 +114,7 @@ -(void)addPlotWithIndex:(NSUInteger)index
forKey:[NSString stringWithFormat:@"plotDataLineColor%lu", (unsigned long)index]
withAttributes:@{ QCPortAttributeNameKey: [NSString stringWithFormat:@"Plot Line Color %lu", (unsigned long)(index + 1)],
QCPortAttributeTypeKey: QCPortTypeColor,
- QCPortAttributeDefaultValueKey: CFBridgingRelease(lineColor) }
+ QCPortAttributeDefaultValueKey: (id)CFBridgingRelease(lineColor) }
];
CGColorRef fillColor = [self newDefaultColorForPlot:index alpha:0.25];
@@ -122,7 +122,7 @@ -(void)addPlotWithIndex:(NSUInteger)index
forKey:[NSString stringWithFormat:@"plotFillColor%lu", (unsigned long)index]
withAttributes:@{ QCPortAttributeNameKey: [NSString stringWithFormat:@"Plot Fill Color %lu", (unsigned long)(index + 1)],
QCPortAttributeTypeKey: QCPortTypeColor,
- QCPortAttributeDefaultValueKey: CFBridgingRelease(fillColor) }
+ QCPortAttributeDefaultValueKey: (id)CFBridgingRelease(fillColor) }
];
[self addInputPortWithType:QCPortTypeNumber
@@ -153,7 +153,7 @@ -(void)removePlots:(NSUInteger)count
[self removeInputPortForKey:[NSString stringWithFormat:@"plotFillColor%lu", (unsigned long)(i - 1)]];
[self removeInputPortForKey:[NSString stringWithFormat:@"plotDataLineWidth%lu", (unsigned long)(i - 1)]];
- [theGraph removePlot:[[theGraph allPlots] lastObject]];
+ [theGraph removePlot:[theGraph allPlots].lastObject];
}
}
@@ -162,7 +162,7 @@ -(BOOL)configurePlots
CPTGraph *theGraph = self.graph;
// The pixel width of a single plot unit (1..2) along the x axis of the plot
- double count = (double)[[theGraph allPlots] count];
+ double count = (double)[theGraph allPlots].count;
double unitWidth = theGraph.plotAreaFrame.bounds.size.width / (self.inputXMax - self.inputXMin);
double barWidth = self.inputBarWidth * unitWidth / count;
@@ -173,11 +173,14 @@ -(BOOL)configurePlots
lineStyle.lineColor = [CPTColor colorWithCGColor:[self dataLineColor:index]];
lineStyle.lineWidth = [self dataLineWidth:index];
plot.lineStyle = lineStyle;
- plot.baseValue = CPTDecimalFromDouble(self.inputBaseValue);
- plot.barWidth = CPTDecimalFromDouble(barWidth);
- plot.barOffset = CPTDecimalFromDouble(self.inputBarOffset);
+ plot.baseValue = @(self.inputBaseValue);
+ plot.barWidth = @(barWidth);
+ plot.barOffset = @(self.inputBarOffset);
plot.barsAreHorizontal = self.inputHorizontalBars;
- plot.fill = [CPTFill fillWithColor:[CPTColor colorWithCGColor:(CGColorRef)[self areaFillColor : index]]];
+ CGColorRef fillColor = [self areaFillColor:index];
+ if ( fillColor ) {
+ plot.fill = [CPTFill fillWithColor:[CPTColor colorWithCGColor:fillColor]];
+ }
[plot reloadData];
}
@@ -188,7 +191,7 @@ -(BOOL)configurePlots
#pragma mark -
#pragma mark Data source methods
--(NSUInteger)numberOfRecordsForPlot:(CPTPlot *)plot
+-(NSUInteger)numberOfRecordsForPlot:(nonnull CPTPlot *)plot
{
NSUInteger plotIndex = [[self.graph allPlots] indexOfObject:plot];
NSString *key = [NSString stringWithFormat:@"plotNumbers%lu", (unsigned long)plotIndex];
@@ -196,28 +199,28 @@ -(NSUInteger)numberOfRecordsForPlot:(CPTPlot *)plot
return [[self valueForInputKey:key] count];
}
--(NSArray *)numbersForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndexRange:(NSRange)indexRange
+-(nullable NSArray *)numbersForPlot:(nonnull CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndexRange:(NSRange __unused)indexRange
{
NSUInteger plotIndex = [[self.graph allPlots] indexOfObject:plot];
NSString *key = [NSString stringWithFormat:@"plotNumbers%lu", (unsigned long)plotIndex];
- NSDictionary *dict = [self valueForInputKey:key];
+ CPTDictionary *dict = [self valueForInputKey:key];
if ( !dict ) {
return nil;
}
- NSUInteger keyCount = [[dict allKeys] count];
- NSMutableArray *array = [NSMutableArray array];
+ NSUInteger keyCount = dict.allKeys.count;
+ CPTMutableNumberArray *array = [NSMutableArray array];
if ( fieldEnum == CPTBarPlotFieldBarLocation ) {
// Calculate horizontal position of bar - nth bar index + barWidth*plotIndex + 0.5
float xpos;
- float plotCount = [[self.graph allPlots] count];
+ float plotCount = [self.graph allPlots].count;
for ( NSUInteger i = 0; i < keyCount; i++ ) {
xpos = (float)i + (float)plotIndex / (plotCount);
- [array addObject:[NSDecimalNumber decimalNumberWithString:[NSString stringWithFormat:@"%f", xpos]]];
+ [array addObject:[NSDecimalNumber decimalNumberWithString:[NSString stringWithFormat:@"%f", (double)xpos]]];
}
}
else {
diff --git a/QCPlugin/CPTPieChartPlugin.h b/QCPlugin/CPTPieChartPlugin.h
index fbe9781eb..844715ba9 100644
--- a/QCPlugin/CPTPieChartPlugin.h
+++ b/QCPlugin/CPTPieChartPlugin.h
@@ -1,4 +1,4 @@
-#import "CorePlotQCPlugIn.h"
+#import "CorePlotQCPlugin.h"
#import
@interface CPTPieChartPlugIn : CorePlotQCPlugIn
@@ -8,7 +8,7 @@
@property (readwrite, assign) double inputStartAngle;
@property (readwrite, assign) NSUInteger inputSliceDirection;
@property (readwrite, assign) double inputBorderWidth;
-@property (readwrite, assign) CGColorRef inputBorderColor;
-@property (readwrite, assign) CGColorRef inputLabelColor;
+@property (readwrite, assign, nonnull) CGColorRef inputBorderColor;
+@property (readwrite, assign, nonnull) CGColorRef inputLabelColor;
@end
diff --git a/QCPlugin/CPTPieChartPlugin.m b/QCPlugin/CPTPieChartPlugin.m
index 2874e1ae3..99aeb2ede 100644
--- a/QCPlugin/CPTPieChartPlugin.m
+++ b/QCPlugin/CPTPieChartPlugin.m
@@ -25,11 +25,11 @@ @implementation CPTPieChartPlugIn
*/
@dynamic inputPieRadius, inputSliceLabelOffset, inputStartAngle, inputSliceDirection;
-+(NSDictionary *)attributes
++(nonnull NSDictionary *)attributes
{
return @{
- QCPlugInAttributeNameKey: @"Core Plot Pie Chart",
- QCPlugInAttributeDescriptionKey: @"Pie chart"
+ QCPlugInAttributeNameKey: @"Core Plot Pie Chart",
+ QCPlugInAttributeDescriptionKey: @"Pie chart"
};
}
@@ -55,68 +55,68 @@ -(double)inputYMin
// Pie charts only support one layer so we override the createViewController method (to hide the number of charts button)
--(QCPlugInViewController *)createViewController
+-(nullable QCPlugInViewController *)createViewController
{
return nil;
}
-+(NSArray *)sortedPropertyPortKeys
++(nonnull CPTStringArray *)sortedPropertyPortKeys
{
- NSArray *pieChartPropertyPortKeys = @[@"inputPieRadius", @"inputSliceLabelOffset", @"inputStartAngle", @"inputSliceDirection", @"inputBorderColor", @"inputBorderWidth"];
+ CPTStringArray *pieChartPropertyPortKeys = @[@"inputPieRadius", @"inputSliceLabelOffset", @"inputStartAngle", @"inputSliceDirection", @"inputBorderColor", @"inputBorderWidth"];
return [[super sortedPropertyPortKeys] arrayByAddingObjectsFromArray:pieChartPropertyPortKeys];
}
-+(NSDictionary *)attributesForPropertyPortWithKey:(NSString *)key
++(nullable CPTDictionary *)attributesForPropertyPortWithKey:(nullable NSString *)key
{
// A few additional ports for the pie chart type ...
if ( [key isEqualToString:@"inputPieRadius"] ) {
return @{
- QCPortAttributeNameKey: @"Pie Radius",
- QCPortAttributeMinimumValueKey: @0.0,
- QCPortAttributeDefaultValueKey: @0.75
+ QCPortAttributeNameKey: @"Pie Radius",
+ QCPortAttributeMinimumValueKey: @0.0,
+ QCPortAttributeDefaultValueKey: @0.75
};
}
else if ( [key isEqualToString:@"inputSliceLabelOffset"] ) {
return @{
- QCPortAttributeNameKey: @"Label Offset",
- QCPortAttributeDefaultValueKey: @20.0
+ QCPortAttributeNameKey: @"Label Offset",
+ QCPortAttributeDefaultValueKey: @20.0
};
}
else if ( [key isEqualToString:@"inputStartAngle"] ) {
return @{
- QCPortAttributeNameKey: @"Start Angle",
- QCPortAttributeDefaultValueKey: @0.0
+ QCPortAttributeNameKey: @"Start Angle",
+ QCPortAttributeDefaultValueKey: @0.0
};
}
else if ( [key isEqualToString:@"inputSliceDirection"] ) {
return @{
- QCPortAttributeNameKey: @"Slice Direction",
- QCPortAttributeMaximumValueKey: @1,
- QCPortAttributeMenuItemsKey: @[@"Clockwise", @"Counter-Clockwise"],
- QCPortAttributeDefaultValueKey: @0
+ QCPortAttributeNameKey: @"Slice Direction",
+ QCPortAttributeMaximumValueKey: @1,
+ QCPortAttributeMenuItemsKey: @[@"Clockwise", @"Counter-Clockwise"],
+ QCPortAttributeDefaultValueKey: @0
};
}
else if ( [key isEqualToString:@"inputBorderWidth"] ) {
return @{
- QCPortAttributeNameKey: @"Border Width",
- QCPortAttributeMinimumValueKey: @0.0,
- QCPortAttributeDefaultValueKey: @1.0
+ QCPortAttributeNameKey: @"Border Width",
+ QCPortAttributeMinimumValueKey: @0.0,
+ QCPortAttributeDefaultValueKey: @1.0
};
}
else if ( [key isEqualToString:@"inputBorderColor"] ) {
- CGColorRef grayColor = CGColorCreateGenericGray(0.0, 1.0);
- NSDictionary *result = @{
- QCPortAttributeNameKey: @"Border Color",
- QCPortAttributeDefaultValueKey: CFBridgingRelease(grayColor)
+ CGColorRef grayColor = CGColorCreateGenericGray(0.0, 1.0);
+ CPTDictionary *result = @{
+ QCPortAttributeNameKey: @"Border Color",
+ QCPortAttributeDefaultValueKey: (id)CFBridgingRelease(grayColor)
};
return result;
}
else if ( [key isEqualToString:@"inputLabelColor"] ) {
- CGColorRef grayColor = CGColorCreateGenericGray(1.0, 1.0);
- NSDictionary *result = @{
- QCPortAttributeNameKey: @"Label Color",
- QCPortAttributeDefaultValueKey: CFBridgingRelease(grayColor)
+ CGColorRef grayColor = CGColorCreateGenericGray(1.0, 1.0);
+ CPTDictionary *result = @{
+ QCPortAttributeNameKey: @"Label Color",
+ QCPortAttributeDefaultValueKey: (id)CFBridgingRelease(grayColor)
};
return result;
}
@@ -147,7 +147,7 @@ -(void)addPlotWithIndex:(NSUInteger)index
forKey:[NSString stringWithFormat:@"plotFillColor%lu", (unsigned long)index]
withAttributes:@{ QCPortAttributeNameKey: [NSString stringWithFormat:@"Primary Fill Color %lu", (unsigned long)(index + 1)],
QCPortAttributeTypeKey: QCPortTypeColor,
- QCPortAttributeDefaultValueKey: CFBridgingRelease(grayColor) }
+ QCPortAttributeDefaultValueKey: (id)CFBridgingRelease(grayColor) }
];
// Add the new plot to the graph
@@ -216,7 +216,7 @@ -(BOOL)configurePlots
#pragma mark -
#pragma mark Data source methods
--(NSUInteger)numberOfRecordsForPlot:(CPTPlot *)plot
+-(NSUInteger)numberOfRecordsForPlot:(nonnull CPTPlot *)plot
{
NSUInteger plotIndex = [[self.graph allPlots] indexOfObject:plot];
NSString *key = [NSString stringWithFormat:@"plotNumbers%lu", (unsigned long)plotIndex];
@@ -224,12 +224,12 @@ -(NSUInteger)numberOfRecordsForPlot:(CPTPlot *)plot
return [[self valueForInputKey:key] count];
}
--(id)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index
+-(nullable id)numberForPlot:(nonnull CPTPlot *)plot field:(NSUInteger __unused)fieldEnum recordIndex:(NSUInteger)index
{
NSUInteger plotIndex = [[self.graph allPlots] indexOfObject:plot];
NSString *key = [NSString stringWithFormat:@"plotNumbers%lu", (unsigned long)plotIndex];
- NSDictionary *dict = [self valueForInputKey:key];
+ CPTDictionary *dict = [self valueForInputKey:key];
if ( dict ) {
return [NSDecimalNumber decimalNumberWithString:[dict[[NSString stringWithFormat:@"%lu", (unsigned long)index]] stringValue]];
@@ -239,10 +239,10 @@ -(id)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUI
}
}
--(CPTFill *)sliceFillForPieChart:(CPTPieChart *)pieChart recordIndex:(NSUInteger)index
+-(nullable CPTFill *)sliceFillForPieChart:(nonnull CPTPieChart *__unused)pieChart recordIndex:(NSUInteger)index
{
- CGColorRef plotFillColor = [[CPTPieChart defaultPieSliceColorForIndex:index] cgColor];
- CGColorRef inputFillColor = (CGColorRef)[self areaFillColor : 0];
+ CGColorRef plotFillColor = [CPTPieChart defaultPieSliceColorForIndex:index].cgColor;
+ CGColorRef inputFillColor = (CGColorRef)[self areaFillColor:0];
const CGFloat *plotColorComponents = CGColorGetComponents(plotFillColor);
const CGFloat *inputColorComponents = CGColorGetComponents(inputFillColor);
@@ -259,12 +259,12 @@ -(CPTFill *)sliceFillForPieChart:(CPTPieChart *)pieChart recordIndex:(NSUInteger
return [[CPTFill alloc] initWithColor:fillCPColor];
}
--(CPTTextLayer *)sliceLabelForPieChart:(CPTPieChart *)pieChart recordIndex:(NSUInteger)index
+-(nullable CPTTextLayer *)sliceLabelForPieChart:(nonnull CPTPieChart *)pieChart recordIndex:(NSUInteger)index
{
NSUInteger plotIndex = [[self.graph allPlots] indexOfObject:pieChart];
NSString *key = [NSString stringWithFormat:@"plotLabels%lu", (unsigned long)plotIndex];
- NSDictionary *dict = [self valueForInputKey:key];
+ CPTDictionary *dict = [self valueForInputKey:key];
if ( !dict ) {
return nil;
diff --git a/QCPlugin/CPTScatterPlotPlugin.h b/QCPlugin/CPTScatterPlotPlugin.h
index 0ea178c1d..aaad42138 100644
--- a/QCPlugin/CPTScatterPlotPlugin.h
+++ b/QCPlugin/CPTScatterPlotPlugin.h
@@ -1,4 +1,4 @@
-#import "CorePlotQCPlugIn.h"
+#import "CorePlotQCPlugin.h"
#import
@interface CPTScatterPlotPlugIn : CorePlotQCPlugIn
diff --git a/QCPlugin/CPTScatterPlotPlugin.m b/QCPlugin/CPTScatterPlotPlugin.m
index 834222994..023a890db 100644
--- a/QCPlugin/CPTScatterPlotPlugin.m
+++ b/QCPlugin/CPTScatterPlotPlugin.m
@@ -1,4 +1,4 @@
-#import "CPTScatterPlotPlugIn.h"
+#import "CPTScatterPlotPlugin.h"
@implementation CPTScatterPlotPlugIn
@@ -22,11 +22,11 @@ @implementation CPTScatterPlotPlugIn
@dynamic inputXMin, inputXMax, inputYMin, inputYMax;
@dynamic inputXMajorIntervals, inputYMajorIntervals, inputXMinorIntervals, inputYMinorIntervals;
-+(NSDictionary *)attributes
++(nonnull NSDictionary *)attributes
{
return @{
- QCPlugInAttributeNameKey: @"Core Plot Scatter Plot",
- QCPlugInAttributeDescriptionKey: @"Scatter plot"
+ QCPlugInAttributeNameKey: @"Core Plot Scatter Plot",
+ QCPlugInAttributeDescriptionKey: @"Scatter plot"
};
}
@@ -51,7 +51,7 @@ -(void)addPlotWithIndex:(NSUInteger)index
forKey:[NSString stringWithFormat:@"plotDataLineColor%lu", (unsigned long)index]
withAttributes:@{ QCPortAttributeNameKey: [NSString stringWithFormat:@"Plot Line Color %lu", (unsigned long)(index + 1)],
QCPortAttributeTypeKey: QCPortTypeColor,
- QCPortAttributeDefaultValueKey: CFBridgingRelease(lineColor) }
+ QCPortAttributeDefaultValueKey: (id)CFBridgingRelease(lineColor) }
];
CGColorRef fillColor = [self newDefaultColorForPlot:index alpha:0.25];
@@ -59,7 +59,7 @@ -(void)addPlotWithIndex:(NSUInteger)index
forKey:[NSString stringWithFormat:@"plotFillColor%lu", (unsigned long)index]
withAttributes:@{ QCPortAttributeNameKey: [NSString stringWithFormat:@"Plot Fill Color %lu", (unsigned long)(index + 1)],
QCPortAttributeTypeKey: QCPortTypeColor,
- QCPortAttributeDefaultValueKey: CFBridgingRelease(fillColor) }
+ QCPortAttributeDefaultValueKey: (id)CFBridgingRelease(fillColor) }
];
[self addInputPortWithType:QCPortTypeNumber
@@ -85,7 +85,7 @@ -(void)addPlotWithIndex:(NSUInteger)index
forKey:[NSString stringWithFormat:@"plotDataSymbolColor%lu", (unsigned long)index]
withAttributes:@{ QCPortAttributeNameKey: [NSString stringWithFormat:@"Data Symbol Color %lu", (unsigned long)(index + 1)],
QCPortAttributeTypeKey: QCPortTypeColor,
- QCPortAttributeDefaultValueKey: CFBridgingRelease(symbolColor) }
+ QCPortAttributeDefaultValueKey: (id)CFBridgingRelease(symbolColor) }
];
// Add the new plot to the graph
@@ -123,11 +123,11 @@ -(void)removePlots:(NSUInteger)count
[self removeInputPortForKey:[NSString stringWithFormat:@"plotDataSymbols%lu", (unsigned long)(i - 1)]];
[self removeInputPortForKey:[NSString stringWithFormat:@"plotDataSymbolColor%lu", (unsigned long)(i - 1)]];
- [theGraph removePlot:[[theGraph allPlots] lastObject]];
+ [theGraph removePlot:[theGraph allPlots].lastObject];
}
}
--(CPTPlotSymbol *)plotSymbol:(NSUInteger)index
+-(nullable CPTPlotSymbol *)plotSymbol:(NSUInteger)index
{
NSString *key = [NSString stringWithFormat:@"plotDataSymbols%lu", (unsigned long)index];
NSUInteger value = [[self valueForInputKey:key] unsignedIntegerValue];
@@ -168,7 +168,7 @@ -(CPTPlotSymbol *)plotSymbol:(NSUInteger)index
}
}
--(CGColorRef)dataSymbolColor:(NSUInteger)index
+-(nonnull CGColorRef)dataSymbolColor:(NSUInteger)index
{
NSString *key = [NSString stringWithFormat:@"plotDataSymbolColor%lu", (unsigned long)index];
@@ -193,8 +193,11 @@ -(BOOL)configurePlots
plot.plotSymbol.lineStyle = lineStyle;
plot.plotSymbol.fill = [CPTFill fillWithColor:[CPTColor colorWithCGColor:[self dataSymbolColor:index]]];
plot.plotSymbol.size = CGSizeMake(10.0, 10.0);
- plot.areaFill = [CPTFill fillWithColor:[CPTColor colorWithCGColor:[self areaFillColor:index]]];
- plot.areaBaseValue = CPTDecimalFromDouble( MAX( self.inputYMin, MIN(self.inputYMax, 0.0) ) );
+ CGColorRef fillColor = [self areaFillColor:index];
+ if ( fillColor ) {
+ plot.areaFill = [CPTFill fillWithColor:[CPTColor colorWithCGColor:fillColor]];
+ }
+ plot.areaBaseValue = @(MAX(self.inputYMin, MIN(self.inputYMax, 0.0)));
[plot reloadData];
}
@@ -204,14 +207,14 @@ -(BOOL)configurePlots
#pragma mark -
#pragma mark Data source methods
--(NSUInteger)numberOfRecordsForPlot:(CPTPlot *)plot
+-(NSUInteger)numberOfRecordsForPlot:(nonnull CPTPlot *)plot
{
NSUInteger plotIndex = [[self.graph allPlots] indexOfObject:plot];
NSString *xKey = [NSString stringWithFormat:@"plotXNumbers%lu", (unsigned long)plotIndex];
NSString *yKey = [NSString stringWithFormat:@"plotYNumbers%lu", (unsigned long)plotIndex];
- NSDictionary *xVals = [self valueForInputKey:xKey];
- NSDictionary *yVals = [self valueForInputKey:yKey];
+ CPTDictionary *xVals = [self valueForInputKey:xKey];
+ CPTDictionary *yVals = [self valueForInputKey:yKey];
if ( !xVals || !yVals ) {
return 0;
@@ -223,14 +226,14 @@ -(NSUInteger)numberOfRecordsForPlot:(CPTPlot *)plot
return xVals.count;
}
--(id)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index
+-(nullable id)numberForPlot:(nonnull CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index
{
NSUInteger plotIndex = [[self.graph allPlots] indexOfObject:plot];
NSString *xKey = [NSString stringWithFormat:@"plotXNumbers%lu", (unsigned long)plotIndex];
NSString *yKey = [NSString stringWithFormat:@"plotYNumbers%lu", (unsigned long)plotIndex];
- NSDictionary *xVals = [self valueForInputKey:xKey];
- NSDictionary *yVals = [self valueForInputKey:yKey];
+ CPTDictionary *xVals = [self valueForInputKey:xKey];
+ CPTDictionary *yVals = [self valueForInputKey:yKey];
if ( !xVals || !yVals ) {
return nil;
@@ -239,7 +242,7 @@ -(id)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUI
return nil;
}
- NSDictionary *dict = (fieldEnum == CPTScatterPlotFieldX) ? xVals : yVals;
+ CPTDictionary *dict = (fieldEnum == CPTScatterPlotFieldX) ? xVals : yVals;
NSString *dictionaryKey = [NSString stringWithFormat:@"%lu", (unsigned long)index];
diff --git a/QCPlugin/CorePlotQCPlugin.h b/QCPlugin/CorePlotQCPlugin.h
index c5359b7ca..99354c2d5 100644
--- a/QCPlugin/CorePlotQCPlugin.h
+++ b/QCPlugin/CorePlotQCPlugin.h
@@ -3,18 +3,18 @@
@interface CorePlotQCPlugIn : QCPlugIn
-@property (readwrite, strong) CPTGraph *graph;
+@property (readwrite, strong, nullable) CPTGraph *graph;
-@property (readwrite, assign) id outputImage;
+@property (readwrite, strong, nonnull) id outputImage;
@property (readwrite, assign) NSUInteger numberOfPlots;
@property (readwrite, assign) NSUInteger inputPixelsWide;
@property (readwrite, assign) NSUInteger inputPixelsHigh;
-@property (readwrite, assign) CGColorRef inputPlotAreaColor;
+@property (readwrite, assign, nonnull) CGColorRef inputPlotAreaColor;
-@property (readwrite, assign) CGColorRef inputAxisColor;
+@property (readwrite, assign, nonnull) CGColorRef inputAxisColor;
@property (readwrite, assign) double inputAxisLineWidth;
@property (readwrite, assign) double inputAxisMajorTickWidth;
@property (readwrite, assign) double inputAxisMinorTickWidth;
@@ -41,14 +41,14 @@
-(BOOL)configurePlots;
-(BOOL)configureAxis;
--(NSUInteger)numberOfRecordsForPlot:(CPTPlot *)plot;
--(CGColorRef)newDefaultColorForPlot:(NSUInteger)index alpha:(CGFloat)alpha;
+-(NSUInteger)numberOfRecordsForPlot:(nonnull CPTPlot *)plot;
+-(nonnull CGColorRef)newDefaultColorForPlot:(NSUInteger)index alpha:(CGFloat)alpha;
-(void)freeResources;
--(CGColorRef)dataLineColor:(NSUInteger)index;
+-(nonnull CGColorRef)dataLineColor:(NSUInteger)index;
-(CGFloat)dataLineWidth:(NSUInteger)index;
--(CGColorRef)areaFillColor:(NSUInteger)index;
--(CGImageRef)newAreaFillImage:(NSUInteger)index;
+-(nullable CGColorRef)areaFillColor:(NSUInteger)index;
+-(nullable CGImageRef)newAreaFillImage:(NSUInteger)index;
@end
diff --git a/QCPlugin/CorePlotQCPlugin.m b/QCPlugin/CorePlotQCPlugin.m
index 16970e821..3aa3ef332 100644
--- a/QCPlugin/CorePlotQCPlugin.m
+++ b/QCPlugin/CorePlotQCPlugin.m
@@ -1,4 +1,4 @@
-#import "CorePlotQCPlugIn.h"
+#import "CorePlotQCPlugin.h"
#import
#define kQCPlugIn_Name @"CorePlotQCPlugIn"
@@ -8,18 +8,18 @@
@interface CorePlotQCPlugIn()
-@property (nonatomic, readwrite, strong) NSMutableData *imageData;
-@property (nonatomic, readwrite, assign) CGContextRef bitmapContext;
-@property (nonatomic, readwrite, strong) id imageProvider;
+@property (nonatomic, readwrite, strong, nullable) NSMutableData *imageData;
+@property (nonatomic, readwrite, assign, nullable) CGContextRef bitmapContext;
+@property (nonatomic, readwrite, strong, nullable) id imageProvider;
-void drawErrorText(CGContextRef context, CGRect rect);
+void drawErrorText(CGContextRef __nonnull context, CGRect rect);
@end
#pragma mark -
// Draws the string "ERROR" in the given context in big red letters
-void drawErrorText(CGContextRef context, CGRect rect)
+void drawErrorText(CGContextRef __nonnull context, CGRect rect)
{
CGContextSaveGState(context);
@@ -83,15 +83,15 @@ @implementation CorePlotQCPlugIn
*/
@synthesize numberOfPlots;
-+(NSDictionary *)attributes
++(nonnull NSDictionary *)attributes
{
/*
* Return a dictionary of attributes describing the plug-in (QCPlugInAttributeNameKey, QCPlugInAttributeDescriptionKey...).
*/
return @{
- QCPlugInAttributeNameKey: kQCPlugIn_Name,
- QCPlugInAttributeDescriptionKey: kQCPlugIn_Description
+ QCPlugInAttributeNameKey: kQCPlugIn_Name,
+ QCPlugInAttributeDescriptionKey: kQCPlugIn_Description
};
}
@@ -113,9 +113,9 @@ +(QCPlugInTimeMode)timeMode
return kQCPlugInTimeModeNone;
}
--(instancetype)init
+-(nonnull instancetype)init
{
- if ( (self = [super init]) ) {
+ if ((self = [super init])) {
/*
* Allocate any permanent resource required by the plug-in.
*/
@@ -149,7 +149,7 @@ -(void)freeResources
self.graph = nil;
}
--(QCPlugInViewController *)createViewController
+-(nullable QCPlugInViewController *)createViewController
{
/*
* Return a new QCPlugInViewController to edit the internal settings of this plug-in instance.
@@ -162,7 +162,7 @@ -(QCPlugInViewController *)createViewController
#pragma mark -
#pragma mark Input and output port configuration
-+(NSArray *)sortedPropertyPortKeys
++(nonnull CPTStringArray *)sortedPropertyPortKeys
{
return @[@"inputPixelsWide",
@"inputPixelsHigh",
@@ -186,7 +186,7 @@ +(NSArray *)sortedPropertyPortKeys
@"inputAxisMinorTickWidth"];
}
-+(NSDictionary *)attributesForPropertyPortWithKey:(NSString *)key
++(nullable CPTDictionary *)attributesForPropertyPortWithKey:(nullable NSString *)key
{
/*
* Specify the optional attributes for property based ports (QCPortAttributeNameKey, QCPortAttributeDefaultValueKey...).
@@ -194,157 +194,157 @@ +(NSDictionary *)attributesForPropertyPortWithKey:(NSString *)key
if ( [key isEqualToString:@"inputXMin"] ) {
return @{
- QCPortAttributeNameKey: @"X Range Min",
- QCPortAttributeDefaultValueKey: @ - 1.0
+ QCPortAttributeNameKey: @"X Range Min",
+ QCPortAttributeDefaultValueKey: @(-1.0)
};
}
if ( [key isEqualToString:@"inputXMax"] ) {
return @{
- QCPortAttributeNameKey: @"X Range Max",
- QCPortAttributeDefaultValueKey: @1.0
+ QCPortAttributeNameKey: @"X Range Max",
+ QCPortAttributeDefaultValueKey: @1.0
};
}
if ( [key isEqualToString:@"inputYMin"] ) {
return @{
- QCPortAttributeNameKey: @"Y Range Min",
- QCPortAttributeDefaultValueKey: @ - 1.0
+ QCPortAttributeNameKey: @"Y Range Min",
+ QCPortAttributeDefaultValueKey: @(-1.0)
};
}
if ( [key isEqualToString:@"inputYMax"] ) {
return @{
- QCPortAttributeNameKey: @"Y Range Max",
- QCPortAttributeDefaultValueKey: @1.0
+ QCPortAttributeNameKey: @"Y Range Max",
+ QCPortAttributeDefaultValueKey: @1.0
};
}
if ( [key isEqualToString:@"inputXMajorIntervals"] ) {
return @{
- QCPortAttributeNameKey: @"X Major Intervals",
- QCPortAttributeDefaultValueKey: @4.0,
- QCPortAttributeMinimumValueKey: @0.0
+ QCPortAttributeNameKey: @"X Major Intervals",
+ QCPortAttributeDefaultValueKey: @4.0,
+ QCPortAttributeMinimumValueKey: @0.0
};
}
if ( [key isEqualToString:@"inputYMajorIntervals"] ) {
return @{
- QCPortAttributeNameKey: @"Y Major Intervals",
- QCPortAttributeDefaultValueKey: @4.0,
- QCPortAttributeMinimumValueKey: @0.0
+ QCPortAttributeNameKey: @"Y Major Intervals",
+ QCPortAttributeDefaultValueKey: @4.0,
+ QCPortAttributeMinimumValueKey: @0.0
};
}
if ( [key isEqualToString:@"inputXMinorIntervals"] ) {
return @{
- QCPortAttributeNameKey: @"X Minor Intervals",
- QCPortAttributeDefaultValueKey: @1,
- QCPortAttributeMinimumValueKey: @0
+ QCPortAttributeNameKey: @"X Minor Intervals",
+ QCPortAttributeDefaultValueKey: @1,
+ QCPortAttributeMinimumValueKey: @0
};
}
if ( [key isEqualToString:@"inputYMinorIntervals"] ) {
return @{
- QCPortAttributeNameKey: @"Y Minor Intervals",
- QCPortAttributeDefaultValueKey: @1,
- QCPortAttributeMinimumValueKey: @0
+ QCPortAttributeNameKey: @"Y Minor Intervals",
+ QCPortAttributeDefaultValueKey: @1,
+ QCPortAttributeMinimumValueKey: @0
};
}
if ( [key isEqualToString:@"inputAxisColor"] ) {
- CGColorRef axisColor = CGColorCreateGenericRGB(1.0, 1.0, 1.0, 1.0);
- NSDictionary *result = @{
- QCPortAttributeNameKey: @"Axis Color",
- QCPortAttributeDefaultValueKey: CFBridgingRelease(axisColor)
+ CGColorRef axisColor = CGColorCreateGenericRGB(1.0, 1.0, 1.0, 1.0);
+ CPTDictionary *result = @{
+ QCPortAttributeNameKey: @"Axis Color",
+ QCPortAttributeDefaultValueKey: (id)CFBridgingRelease(axisColor)
};
return result;
}
if ( [key isEqualToString:@"inputAxisLineWidth"] ) {
return @{
- QCPortAttributeNameKey: @"Axis Line Width",
- QCPortAttributeMinimumValueKey: @0.0,
- QCPortAttributeDefaultValueKey: @1.0
+ QCPortAttributeNameKey: @"Axis Line Width",
+ QCPortAttributeMinimumValueKey: @0.0,
+ QCPortAttributeDefaultValueKey: @1.0
};
}
if ( [key isEqualToString:@"inputAxisMajorTickWidth"] ) {
return @{
- QCPortAttributeNameKey: @"Major Tick Width",
- QCPortAttributeMinimumValueKey: @0.0,
- QCPortAttributeDefaultValueKey: @2.0
+ QCPortAttributeNameKey: @"Major Tick Width",
+ QCPortAttributeMinimumValueKey: @0.0,
+ QCPortAttributeDefaultValueKey: @2.0
};
}
if ( [key isEqualToString:@"inputAxisMinorTickWidth"] ) {
return @{
- QCPortAttributeNameKey: @"Minor Tick Width",
- QCPortAttributeMinimumValueKey: @0.0,
- QCPortAttributeDefaultValueKey: @1.0
+ QCPortAttributeNameKey: @"Minor Tick Width",
+ QCPortAttributeMinimumValueKey: @0.0,
+ QCPortAttributeDefaultValueKey: @1.0
};
}
if ( [key isEqualToString:@"inputAxisMajorTickLength"] ) {
return @{
- QCPortAttributeNameKey: @"Major Tick Length",
- QCPortAttributeMinimumValueKey: @0.0,
- QCPortAttributeDefaultValueKey: @10.0
+ QCPortAttributeNameKey: @"Major Tick Length",
+ QCPortAttributeMinimumValueKey: @0.0,
+ QCPortAttributeDefaultValueKey: @10.0
};
}
if ( [key isEqualToString:@"inputAxisMinorTickLength"] ) {
return @{
- QCPortAttributeNameKey: @"Minor Tick Length",
- QCPortAttributeMinimumValueKey: @0.0,
- QCPortAttributeDefaultValueKey: @3.0
+ QCPortAttributeNameKey: @"Minor Tick Length",
+ QCPortAttributeMinimumValueKey: @0.0,
+ QCPortAttributeDefaultValueKey: @3.0
};
}
if ( [key isEqualToString:@"inputMajorGridLineWidth"] ) {
return @{
- QCPortAttributeNameKey: @"Major Grid Line Width",
- QCPortAttributeMinimumValueKey: @0.0,
- QCPortAttributeDefaultValueKey: @1.0
+ QCPortAttributeNameKey: @"Major Grid Line Width",
+ QCPortAttributeMinimumValueKey: @0.0,
+ QCPortAttributeDefaultValueKey: @1.0
};
}
if ( [key isEqualToString:@"inputMinorGridLineWidth"] ) {
return @{
- QCPortAttributeNameKey: @"Minor Grid Line Width",
- QCPortAttributeMinimumValueKey: @0.0,
- QCPortAttributeDefaultValueKey: @0.0
+ QCPortAttributeNameKey: @"Minor Grid Line Width",
+ QCPortAttributeMinimumValueKey: @0.0,
+ QCPortAttributeDefaultValueKey: @0.0
};
}
if ( [key isEqualToString:@"inputPlotAreaColor"] ) {
CGColorRef plotAreaColor = CGColorCreateGenericRGB(0.0, 0.0, 0.0, 0.4);
- NSDictionary *result = @{
- QCPortAttributeNameKey: @"Plot Area Color",
- QCPortAttributeDefaultValueKey: CFBridgingRelease(plotAreaColor)
+ CPTDictionary *result = @{
+ QCPortAttributeNameKey: @"Plot Area Color",
+ QCPortAttributeDefaultValueKey: (id)CFBridgingRelease(plotAreaColor)
};
return result;
}
if ( [key isEqualToString:@"inputPixelsWide"] ) {
return @{
- QCPortAttributeNameKey: @"Pixels Wide",
- QCPortAttributeMinimumValueKey: @1,
- QCPortAttributeDefaultValueKey: @512
+ QCPortAttributeNameKey: @"Pixels Wide",
+ QCPortAttributeMinimumValueKey: @1,
+ QCPortAttributeDefaultValueKey: @512
};
}
if ( [key isEqualToString:@"inputPixelsHigh"] ) {
return @{
- QCPortAttributeNameKey: @"Pixels High",
- QCPortAttributeMinimumValueKey: @1,
- QCPortAttributeDefaultValueKey: @512
+ QCPortAttributeNameKey: @"Pixels High",
+ QCPortAttributeMinimumValueKey: @1,
+ QCPortAttributeDefaultValueKey: @512
};
}
if ( [key isEqualToString:@"outputImage"] ) {
return @{
- QCPortAttributeNameKey: @"Image"
+ QCPortAttributeNameKey: @"Image"
};
}
@@ -364,23 +364,23 @@ -(void)createGraph
// Setup scatter plot space
CPTXYPlotSpace *plotSpace = (CPTXYPlotSpace *)newGraph.defaultPlotSpace;
- plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(1.0) length:CPTDecimalFromFloat(1.0)];
- plotSpace.yRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(-1.0) length:CPTDecimalFromFloat(1.0)];
+ plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:@1.0 length:@1.0];
+ plotSpace.yRange = [CPTPlotRange plotRangeWithLocation:@(-1.0) length:@1.0];
// Axes
CPTXYAxisSet *axisSet = (CPTXYAxisSet *)newGraph.axisSet;
CPTXYAxis *x = axisSet.xAxis;
- x.majorIntervalLength = CPTDecimalFromFloat(0.5);
+ x.majorIntervalLength = @0.5;
x.minorTicksPerInterval = 2;
CPTXYAxis *y = axisSet.yAxis;
- y.majorIntervalLength = CPTDecimalFromFloat(0.5);
+ y.majorIntervalLength = @0.5;
y.minorTicksPerInterval = 5;
}
}
--(CGColorRef)newDefaultColorForPlot:(NSUInteger)index alpha:(CGFloat)alpha
+-(nonnull CGColorRef)newDefaultColorForPlot:(NSUInteger)index alpha:(CGFloat)alpha
{
CGColorRef color;
@@ -451,11 +451,11 @@ -(BOOL)configureAxis
set.xAxis.labelTextStyle = textStyle;
double xrange = self.inputXMax - self.inputXMin;
- set.xAxis.majorIntervalLength = CPTDecimalFromDouble( xrange / (self.inputXMajorIntervals) );
+ set.xAxis.majorIntervalLength = @(xrange / (self.inputXMajorIntervals));
set.xAxis.minorTicksPerInterval = self.inputXMinorIntervals;
double yrange = self.inputYMax - self.inputYMin;
- set.yAxis.majorIntervalLength = CPTDecimalFromDouble( yrange / (self.inputYMajorIntervals) );
+ set.yAxis.majorIntervalLength = @(yrange / (self.inputYMajorIntervals));
set.yAxis.minorTicksPerInterval = self.inputYMinorIntervals;
set.xAxis.minorTickLength = self.inputAxisMinorTickLength;
@@ -497,7 +497,7 @@ -(BOOL)configureAxis
return YES;
}
--(CGColorRef)dataLineColor:(NSUInteger)index
+-(nonnull CGColorRef)dataLineColor:(NSUInteger)index
{
NSString *key = [NSString stringWithFormat:@"plotDataLineColor%lu", (unsigned long)index];
@@ -513,18 +513,19 @@ -(CGFloat)dataLineWidth:(NSUInteger)index
return inputValue.doubleValue;
}
--(CGColorRef)areaFillColor:(NSUInteger)index
+-(nullable CGColorRef)areaFillColor:(NSUInteger)index
{
NSString *key = [NSString stringWithFormat:@"plotFillColor%lu", (unsigned long)index];
return (__bridge CGColorRef)([self valueForInputKey:key]);
}
--(CGImageRef)newAreaFillImage:(NSUInteger)index
+-(nullable CGImageRef)newAreaFillImage:(NSUInteger)index
{
NSString *key = [NSString stringWithFormat:@"plotFillImage%lu", (unsigned long)index];
id img = [self valueForInputKey:key];
+
if ( !img ) {
return nil;
}
@@ -546,6 +547,9 @@ -(CGImageRef)newAreaFillImage:(NSUInteger)index
NSUInteger bytesPerRow = [img bufferBytesPerRow];
CGColorSpaceRef colorSpace = [img bufferColorSpace];
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wincompatible-pointer-types-discards-qualifiers"
+
CGContextRef imgContext = CGBitmapContextCreate(baseAddress,
pixelsWide,
pixelsHigh,
@@ -554,6 +558,8 @@ -(CGImageRef)newAreaFillImage:(NSUInteger)index
colorSpace,
(CGBitmapInfo)kCGImageAlphaNoneSkipLast);
+#pragma clang diagnostic pop
+
CGImageRef imageRef = CGBitmapContextCreateImage(imgContext);
[img unlockBufferRepresentation];
@@ -563,12 +569,12 @@ -(CGImageRef)newAreaFillImage:(NSUInteger)index
return imageRef;
}
-static void _BufferReleaseCallback(const void *address, void *context)
+static void _BufferReleaseCallback(const void *__nonnull __unused address, void *__nonnull __unused context)
{
// Don't do anything. We release the buffer manually when it's recreated or during dealloc
}
--(void)createImageResourcesWithContext:(id)context
+-(void)createImageResourcesWithContext:(nonnull id)context
{
// Create a CG bitmap for drawing. The image data is released when QC calls _BufferReleaseCallback
CGSize boundsSize = self.graph.bounds.size;
@@ -576,7 +582,7 @@ -(void)createImageResourcesWithContext:(id)context
size_t rowBytes = (size_t)boundsSize.width * 4;
if ( rowBytes % 16 ) {
- rowBytes = ( (rowBytes / 16) + 1 ) * 16;
+ rowBytes = ((rowBytes / 16) + 1) * 16;
}
if ( !self.imageData ) {
@@ -609,7 +615,7 @@ -(void)createImageResourcesWithContext:(id)context
CGContextRelease(newContext);
if ( rowBytes % 16 ) {
- rowBytes = ( (rowBytes / 16) + 1 ) * 16;
+ rowBytes = ((rowBytes / 16) + 1) * 16;
}
// Note: I don't have a PPC to test on so this may or may not cause some color issues
@@ -639,12 +645,12 @@ -(void)createImageResourcesWithContext:(id)context
#pragma mark -
#pragma mark Data source methods
--(NSUInteger)numberOfRecordsForPlot:(CPTPlot *)plot
+-(NSUInteger)numberOfRecordsForPlot:(nonnull CPTPlot *__unused)plot
{
return 0;
}
--(id)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index
+-(nullable id)numberForPlot:(nonnull CPTPlot *__unused)plot field:(NSUInteger __unused)fieldEnum recordIndex:(NSUInteger __unused)index
{
return @0;
}
@@ -671,12 +677,12 @@ -(void)setNumberOfPlots:(NSUInteger)number
numberOfPlots = number;
}
-+(NSArray *)plugInKeys
++(nonnull CPTStringArray *)plugInKeys
{
return @[@"numberOfPlots"];
}
--(id)serializedValueForKey:(NSString *)key
+-(nonnull id)serializedValueForKey:(nonnull NSString *)key
{
/*
* Provide custom serialization for the plug-in internal settings that are not values complying to the protocol.
@@ -691,7 +697,7 @@ -(id)serializedValueForKey:(NSString *)key
}
}
--(void)setSerializedValue:(id)serializedValue forKey:(NSString *)key
+-(void)setSerializedValue:(nonnull id)serializedValue forKey:(nonnull NSString *)key
{
/*
* Provide deserialization for the plug-in internal settings that were custom serialized in -serializedValueForKey.
@@ -699,7 +705,7 @@ -(void)setSerializedValue:(id)serializedValue forKey:(NSString *)key
*/
if ( [key isEqualToString:@"numberOfPlots"] ) {
- [self setNumberOfPlots:MAX(1, [(NSNumber *)serializedValue unsignedIntegerValue])];
+ [self setNumberOfPlots:MAX(1, [(NSNumber *) serializedValue unsignedIntegerValue])];
}
else {
[super setSerializedValue:serializedValue forKey:key];
@@ -709,7 +715,7 @@ -(void)setSerializedValue:(id)serializedValue forKey:(NSString *)key
#pragma mark -
#pragma mark Accessors
--(void)setBitmapContext:(CGContextRef)newContext
+-(void)setBitmapContext:(nullable CGContextRef)newContext
{
if ( newContext != bitmapContext ) {
CGContextRelease(bitmapContext);
@@ -720,14 +726,14 @@ -(void)setBitmapContext:(CGContextRef)newContext
#pragma mark -
#pragma mark Subclass methods
--(void)addPlotWithIndex:(NSUInteger)index
+-(void)addPlotWithIndex:(NSUInteger __unused)index
{
/*
* Subclasses should override this method to create their own ports, plots, and add the plots to the graph
*/
}
--(void)removePlots:(NSUInteger)count
+-(void)removePlots:(NSUInteger __unused)count
{
/*
* Subclasses should override this method to remove plots and their ports
@@ -750,7 +756,7 @@ -(BOOL)configureGraph
*/
// Configure the graph area
- CGRect frame = CPTRectMake( 0.0, 0.0, MAX(1, self.inputPixelsWide), MAX(1, self.inputPixelsHigh) );
+ CGRect frame = CPTRectMake(0.0, 0.0, MAX(1, self.inputPixelsWide), MAX(1, self.inputPixelsHigh));
self.graph.bounds = frame;
@@ -760,7 +766,7 @@ -(BOOL)configureGraph
self.graph.paddingBottom = 0.0;
// Perform some sanity checks. If there is a configuration error set the error flag so that a message is displayed
- if ( (self.inputXMax <= self.inputXMin) || (self.inputYMax <= self.inputYMin) ) {
+ if ((self.inputXMax <= self.inputXMin) || (self.inputYMax <= self.inputYMin)) {
return NO;
}
@@ -778,8 +784,8 @@ -(BOOL)configureGraph
// Configure the plot space and axis sets
CPTXYPlotSpace *plotSpace = (CPTXYPlotSpace *)self.graph.defaultPlotSpace;
- plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble(self.inputXMin) length:CPTDecimalFromDouble(self.inputXMax - self.inputXMin)];
- plotSpace.yRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble(self.inputYMin) length:CPTDecimalFromDouble(self.inputYMax - self.inputYMin)];
+ plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:@(self.inputXMin) length:@(self.inputXMax - self.inputXMin)];
+ plotSpace.yRange = [CPTPlotRange plotRangeWithLocation:@(self.inputYMin) length:@(self.inputYMax - self.inputYMin)];
[self configureAxis];
@@ -795,7 +801,7 @@ -(BOOL)configureGraph
@implementation CorePlotQCPlugIn(Execution)
--(BOOL)execute:(id)context atTime:(NSTimeInterval)time withArguments:(NSDictionary *)arguments
+-(BOOL)execute:(nonnull id)context atTime:(NSTimeInterval __unused)time withArguments:(nullable CPTDictionary *__unused)arguments
{
// Configure the plot for drawing
BOOL configurationCheck = [self configureGraph];
@@ -811,9 +817,9 @@ -(BOOL)execute:(id)context atTime:(NSTimeInterval)time withArgu
// Draw the plot ...
CGSize boundsSize = self.graph.bounds.size;
CGContextRef bmContext = self.bitmapContext;
- CGContextClearRect( bmContext, CPTRectMake(0.0, 0.0, boundsSize.width, boundsSize.height) );
+ CGContextClearRect(bmContext, CPTRectMake(0.0, 0.0, boundsSize.width, boundsSize.height));
CGContextSetRGBFillColor(bmContext, 0.0, 0.0, 0.0, 0.0);
- CGContextFillRect( bmContext, CPTRectMake(0, 0, boundsSize.width, boundsSize.height) );
+ CGContextFillRect(bmContext, CPTRectMake(0, 0, boundsSize.width, boundsSize.height));
CGContextSetAllowsAntialiasing(bmContext, true);
if ( configurationCheck ) {
@@ -821,16 +827,21 @@ -(BOOL)execute:(id)context atTime:(NSTimeInterval)time withArgu
[self.graph recursivelyRenderInContext:bmContext];
}
else {
- drawErrorText( bmContext, CPTRectMake(0, 0, self.inputPixelsWide, self.inputPixelsHigh) );
+ drawErrorText(bmContext, CPTRectMake(0, 0, self.inputPixelsWide, self.inputPixelsHigh));
}
- //CGContextSetAllowsAntialiasing(bitmapContext, false);
+ // CGContextSetAllowsAntialiasing(bitmapContext, false);
CGContextFlush(bmContext);
// ... and put it on the output port
- self.outputImage = self.imageProvider;
-
- return YES;
+ id provider = self.imageProvider;
+ if ( provider ) {
+ self.outputImage = provider;
+ return YES;
+ }
+ else {
+ return NO;
+ }
}
@end
diff --git a/QCPlugin/CorePlotQCPlugin.xcodeproj/project.pbxproj b/QCPlugin/CorePlotQCPlugin.xcodeproj/project.pbxproj
index 2833773af..e07788d06 100644
--- a/QCPlugin/CorePlotQCPlugin.xcodeproj/project.pbxproj
+++ b/QCPlugin/CorePlotQCPlugin.xcodeproj/project.pbxproj
@@ -3,7 +3,7 @@
archiveVersion = 1;
classes = {
};
- objectVersion = 46;
+ objectVersion = 47;
objects = {
/* Begin PBXAggregateTarget section */
@@ -62,6 +62,48 @@
remoteGlobalIDString = 8DC2EF4F0486A6940098B216;
remoteInfo = CorePlot;
};
+ C31D02421D10F531008C1EF2 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = A89BAB3B1027EFBD004B2FE1 /* CorePlot.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = C37EA6921BC83F2A0091C8F7;
+ remoteInfo = "CorePlot tvOS";
+ };
+ C31D02441D10F531008C1EF2 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = A89BAB3B1027EFBD004B2FE1 /* CorePlot.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = C37EA6B71BC83F2D0091C8F7;
+ remoteInfo = "UnitTests tvOS";
+ };
+ C3B925EA1ADF1CBE00C67086 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = A89BAB3B1027EFBD004B2FE1 /* CorePlot.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = C38A09781A46185200D45436;
+ remoteInfo = CorePlot_iOS;
+ };
+ C3B925EC1ADF1CBE00C67086 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = A89BAB3B1027EFBD004B2FE1 /* CorePlot.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = C38A09821A46185300D45436;
+ remoteInfo = CorePlot_iOSTests;
+ };
+ C3B925EE1ADF1CBE00C67086 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = A89BAB3B1027EFBD004B2FE1 /* CorePlot.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = C38A09BA1A4619A900D45436;
+ remoteInfo = "CorePlot-CocoaTouch";
+ };
+ C3B925F01ADF1CBE00C67086 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = A89BAB3B1027EFBD004B2FE1 /* CorePlot.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = C38A09C41A4619A900D45436;
+ remoteInfo = "CorePlot-CocoaTouchTests";
+ };
/* End PBXContainerItemProxy section */
/* Begin PBXCopyFilesBuildPhase section */
@@ -81,11 +123,9 @@
1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; };
16AA5C440A7EEE7300888E31 /* CorePlotQCPlugin_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CorePlotQCPlugin_Prefix.pch; sourceTree = ""; };
16BA95400A7EB2EB001E4983 /* CorePlotQCPlugin.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CorePlotQCPlugin.h; sourceTree = ""; };
- 16BA95410A7EB2EB001E4983 /* CorePlotQCPlugin.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = CorePlotQCPlugin.m; sourceTree = ""; };
+ 16BA95410A7EB2EB001E4983 /* CorePlotQCPlugin.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = CorePlotQCPlugin.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
16BA96300A7EB9AC001E4983 /* Quartz.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Quartz.framework; path = /System/Library/Frameworks/Quartz.framework; sourceTree = ""; };
- 7238D5510DB6988600E9A42D /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/Settings.xib; sourceTree = ""; };
8D5B49B6048680CD000E48DA /* CorePlotQCPlugin.plugin */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = CorePlotQCPlugin.plugin; sourceTree = BUILT_PRODUCTS_DIR; };
- 8D5B49B7048680CD000E48DA /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
A819AA0311FD3F23006D1C2D /* CPTPieChartPlugin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CPTPieChartPlugin.h; sourceTree = ""; };
A819AA0411FD3F23006D1C2D /* CPTPieChartPlugin.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CPTPieChartPlugin.m; sourceTree = ""; };
A89BAB3B1027EFBD004B2FE1 /* CorePlot.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = CorePlot.xcodeproj; path = ../framework/CorePlot.xcodeproj; sourceTree = SOURCE_ROOT; };
@@ -93,7 +133,9 @@
A8FC1815102CBADE00CF2266 /* CPTScatterPlotPlugin.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CPTScatterPlotPlugin.m; sourceTree = ""; };
A8FC1817102CBAEA00CF2266 /* CPTBarPlotPlugin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CPTBarPlotPlugin.h; sourceTree = ""; };
A8FC1818102CBAEA00CF2266 /* CPTBarPlotPlugin.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CPTBarPlotPlugin.m; sourceTree = ""; };
- C3C8CFF619E9504C007E0BCB /* CorePlotWarnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = CorePlotWarnings.xcconfig; path = ../framework/CorePlotWarnings.xcconfig; sourceTree = ""; };
+ C37A410E20E0326C00C4FF48 /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Base; path = Base.lproj/Info.plist; sourceTree = ""; };
+ C3C8CFF619E9504C007E0BCB /* CorePlotWarnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = CorePlotWarnings.xcconfig; path = ../framework/xcconfig/CorePlotWarnings.xcconfig; sourceTree = ""; };
+ C3DA083820E00C7700F73704 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/Settings.xib; sourceTree = ""; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@@ -139,7 +181,7 @@
isa = PBXGroup;
children = (
7238D5500DB6988600E9A42D /* Settings.xib */,
- 8D5B49B7048680CD000E48DA /* Info.plist */,
+ C37A410F20E0326C00C4FF48 /* Info.plist */,
);
name = Resources;
sourceTree = "";
@@ -181,6 +223,12 @@
children = (
BC21A97F1035BEAF00FED2A4 /* CorePlot.framework */,
A8F18CF511FA634B00B2C42F /* UnitTests.xctest */,
+ C3B925EB1ADF1CBE00C67086 /* CorePlot.framework */,
+ C3B925ED1ADF1CBE00C67086 /* UnitTests iOS.xctest */,
+ C3B925EF1ADF1CBE00C67086 /* libCorePlot-CocoaTouch.a */,
+ C3B925F11ADF1CBE00C67086 /* CorePlot-CocoaTouchTests.xctest */,
+ C31D02431D10F531008C1EF2 /* CorePlot.framework */,
+ C31D02451D10F531008C1EF2 /* UnitTests tvOS.xctest */,
);
name = Products;
sourceTree = "";
@@ -214,17 +262,18 @@
089C1669FE841209C02AAC07 /* Project object */ = {
isa = PBXProject;
attributes = {
- LastUpgradeCheck = 0700;
+ LastUpgradeCheck = 0930;
};
buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "CorePlotQCPlugin" */;
- compatibilityVersion = "Xcode 3.2";
- developmentRegion = English;
+ compatibilityVersion = "Xcode 6.3";
+ developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (
- English,
- Japanese,
- French,
- German,
+ Base,
+ en,
+ ja,
+ fr,
+ de,
);
mainGroup = 089C166AFE841209C02AAC07 /* Quartz Composer Plug In */;
projectDirPath = "";
@@ -257,6 +306,48 @@
remoteRef = BC21A97E1035BEAF00FED2A4 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
+ C31D02431D10F531008C1EF2 /* CorePlot.framework */ = {
+ isa = PBXReferenceProxy;
+ fileType = wrapper.framework;
+ path = CorePlot.framework;
+ remoteRef = C31D02421D10F531008C1EF2 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ C31D02451D10F531008C1EF2 /* UnitTests tvOS.xctest */ = {
+ isa = PBXReferenceProxy;
+ fileType = wrapper.cfbundle;
+ path = "UnitTests tvOS.xctest";
+ remoteRef = C31D02441D10F531008C1EF2 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ C3B925EB1ADF1CBE00C67086 /* CorePlot.framework */ = {
+ isa = PBXReferenceProxy;
+ fileType = wrapper.framework;
+ path = CorePlot.framework;
+ remoteRef = C3B925EA1ADF1CBE00C67086 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ C3B925ED1ADF1CBE00C67086 /* UnitTests iOS.xctest */ = {
+ isa = PBXReferenceProxy;
+ fileType = wrapper.cfbundle;
+ path = "UnitTests iOS.xctest";
+ remoteRef = C3B925EC1ADF1CBE00C67086 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ C3B925EF1ADF1CBE00C67086 /* libCorePlot-CocoaTouch.a */ = {
+ isa = PBXReferenceProxy;
+ fileType = archive.ar;
+ path = "libCorePlot-CocoaTouch.a";
+ remoteRef = C3B925EE1ADF1CBE00C67086 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ C3B925F11ADF1CBE00C67086 /* CorePlot-CocoaTouchTests.xctest */ = {
+ isa = PBXReferenceProxy;
+ fileType = wrapper.cfbundle;
+ path = "CorePlot-CocoaTouchTests.xctest";
+ remoteRef = C3B925F01ADF1CBE00C67086 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
/* End PBXReferenceProxy section */
/* Begin PBXResourcesBuildPhase section */
@@ -317,16 +408,25 @@
7238D5500DB6988600E9A42D /* Settings.xib */ = {
isa = PBXVariantGroup;
children = (
- 7238D5510DB6988600E9A42D /* English */,
+ C3DA083820E00C7700F73704 /* Base */,
);
name = Settings.xib;
sourceTree = "";
};
+ C37A410F20E0326C00C4FF48 /* Info.plist */ = {
+ isa = PBXVariantGroup;
+ children = (
+ C37A410E20E0326C00C4FF48 /* Base */,
+ );
+ name = Info.plist;
+ sourceTree = "";
+ };
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
1DEB913B08733D840010E9CD /* Debug */ = {
isa = XCBuildConfiguration;
+ baseConfigurationReference = C3C8CFF619E9504C007E0BCB /* CorePlotWarnings.xcconfig */;
buildSettings = {
ADDITIONAL_SDKS = "";
CLANG_ENABLE_OBJC_ARC = YES;
@@ -334,11 +434,11 @@
COPY_PHASE_STRIP = NO;
GCC_DYNAMIC_NO_PIC = NO;
GCC_MODEL_TUNING = G5;
- GCC_OPTIMIZATION_LEVEL = 0;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = CorePlotQCPlugin_Prefix.pch;
- INFOPLIST_FILE = Info.plist;
+ INFOPLIST_FILE = "$(SRCROOT)/Base.lproj/Info.plist";
INSTALL_PATH = "$(HOME)/Library/Graphics/Quartz Composer Plug-Ins";
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @loader_path/../Frameworks";
OTHER_LDFLAGS = "";
PRODUCT_BUNDLE_IDENTIFIER = "org.CorePlot.${PRODUCT_NAME:identifier}";
PRODUCT_NAME = CorePlotQCPlugin;
@@ -350,6 +450,7 @@
};
1DEB913C08733D840010E9CD /* Release */ = {
isa = XCBuildConfiguration;
+ baseConfigurationReference = C3C8CFF619E9504C007E0BCB /* CorePlotWarnings.xcconfig */;
buildSettings = {
ADDITIONAL_SDKS = "";
CLANG_ENABLE_OBJC_ARC = YES;
@@ -358,8 +459,9 @@
GCC_MODEL_TUNING = G5;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = CorePlotQCPlugin_Prefix.pch;
- INFOPLIST_FILE = Info.plist;
+ INFOPLIST_FILE = "$(SRCROOT)/Base.lproj/Info.plist";
INSTALL_PATH = "$(HOME)/Library/Graphics/Quartz Composer Plug-Ins";
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @loader_path/../Frameworks";
OTHER_LDFLAGS = "";
PRODUCT_BUNDLE_IDENTIFIER = "org.CorePlot.${PRODUCT_NAME:identifier}";
PRODUCT_NAME = CorePlotQCPlugin;
@@ -374,8 +476,12 @@
baseConfigurationReference = C3C8CFF619E9504C007E0BCB /* CorePlotWarnings.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = c99;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.8;
ONLY_ACTIVE_ARCH = YES;
SYMROOT = "$(PROJECT_DIR)/../build";
@@ -387,7 +493,11 @@
baseConfigurationReference = C3C8CFF619E9504C007E0BCB /* CorePlotWarnings.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
GCC_C_LANGUAGE_STANDARD = c99;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_OPTIMIZATION_LEVEL = s;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.8;
OTHER_LDFLAGS = "";
SYMROOT = "$(PROJECT_DIR)/../build";
@@ -397,6 +507,7 @@
233E2D8A0A83C7AC005A62DF /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
+ CLANG_ENABLE_OBJC_WEAK = YES;
COMBINE_HIDPI_IMAGES = YES;
PRODUCT_NAME = "Build & Install";
};
@@ -405,6 +516,7 @@
233E2D8B0A83C7AC005A62DF /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
+ CLANG_ENABLE_OBJC_WEAK = YES;
COMBINE_HIDPI_IMAGES = YES;
PRODUCT_NAME = "Build & Install";
};
diff --git a/QCPlugin/CorePlotQCPlugin.xcodeproj/xcshareddata/xcschemes/Build & Copy.xcscheme b/QCPlugin/CorePlotQCPlugin.xcodeproj/xcshareddata/xcschemes/Build & Copy.xcscheme
new file mode 100644
index 000000000..7afa5ea4a
--- /dev/null
+++ b/QCPlugin/CorePlotQCPlugin.xcodeproj/xcshareddata/xcschemes/Build & Copy.xcscheme
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/QCPlugin/CorePlotQCPlugin.xcodeproj/xcshareddata/xcschemes/CorePlotQCPlugin.xcscheme b/QCPlugin/CorePlotQCPlugin.xcodeproj/xcshareddata/xcschemes/CorePlotQCPlugin.xcscheme
new file mode 100644
index 000000000..d1baaa5f3
--- /dev/null
+++ b/QCPlugin/CorePlotQCPlugin.xcodeproj/xcshareddata/xcschemes/CorePlotQCPlugin.xcscheme
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/QCPlugin/English.lproj/Settings.xib b/QCPlugin/English.lproj/Settings.xib
deleted file mode 100644
index a2ce340ec..000000000
--- a/QCPlugin/English.lproj/Settings.xib
+++ /dev/null
@@ -1,490 +0,0 @@
-
-
-
- 1050
- 9J61
- 677
- 949.46
- 353.00
-
-
-
-
- YES
-
- QCPlugInViewController
-
-
- FirstResponder
-
-
-
- 256
-
- YES
-
-
- 268
- {{17, 363}, {94, 14}}
-
- YES
-
- 68288064
- 272761856
- Number of Plots:
-
- LucidaGrande
- 1.100000e+01
- 3100
-
-
-
- 6
- System
- controlColor
-
- 3
- MC42NjY2NjY2OQA
-
-
-
- 6
- System
- controlTextColor
-
- 3
- MAA
-
-
-
-
-
-
- 268
- {{116, 361}, {34, 19}}
-
- YES
-
- -1804468671
- 272761856
-
-
-
-
- YES
-
- YES
- allowsFloats
- formatterBehavior
- minimum
- negativeFormat
- numberStyle
- positiveFormat
-
-
- YES
-
-
-
- ###0
-
- ###0
-
-
- ###0
- ###0
-
-
-
-
-
-
-
-
-
- NaN
-
- YES
-
- YES
-
-
- YES
-
-
-
-
-
- 0
- 0
- YES
- NO
- 1
- AAAAAAAAAAAAAAAAAAAAAA
-
-
- 3
- YES
- YES
- YES
-
- .
- ,
- NO
- YES
- YES
-
-
- YES
-
- 6
- System
- textBackgroundColor
-
- 3
- MQA
-
-
-
- 6
- System
- textColor
-
-
-
-
-
-
- 268
- {{155, 359}, {15, 22}}
-
- YES
-
- 68025888
- 131072
-
-
- 1.000000e+02
- 1.000000e+00
- YES
- YES
-
-
-
-
- 36
-
- YES
-
-
- 256
-
- YES
-
-
- 268
- {{15, 14}, {234, 28}}
-
- YES
-
- 67239424
- 272760832
- Use the up and down arrows to select the number of plots.
-
-
-
-
-
-
-
- {{1, 1}, {264, 54}}
-
-
-
- {{17, 299}, {266, 56}}
-
- {0, 0}
-
- 67239424
- 0
- Box
-
-
-
- 3
- MCAwLjgwMDAwMDAxAA
-
-
-
- 1
- 0
- 0
- NO
-
-
- {300, 400}
-
-
- NSView
-
- NSResponder
-
-
- NSApplication
-
-
- YES
-
-
-
-
- YES
-
-
- view
-
-
-
- 10
-
-
-
- value: plugIn.numberOfPlots
-
-
-
-
-
- value: plugIn.numberOfPlots
- value
- plugIn.numberOfPlots
- 2
-
-
- 34
-
-
-
- value: plugIn.numberOfPlots
-
-
-
-
-
- value: plugIn.numberOfPlots
- value
- plugIn.numberOfPlots
- 2
-
-
- 35
-
-
-
-
- YES
-
- 0
-
- YES
-
-
-
-
-
- -2
-
-
- RmlsZSdzIE93bmVyA
-
-
- -1
-
-
- First Responder
-
-
- 5
-
-
- YES
-
-
-
-
-
-
- View
-
-
- -3
-
-
- Application
-
-
- 20
-
-
-
-
- 27
-
-
- YES
-
-
-
-
-
- 28
-
-
-
-
- 29
-
-
- YES
-
-
-
-
-
- 30
-
-
- YES
-
-
-
-
-
- 31
-
-
- YES
-
-
-
-
-
- 32
-
-
-
-
- 33
-
-
-
-
- 38
-
-
- YES
-
-
-
-
-
- 36
-
-
- YES
-
-
-
-
-
- 37
-
-
-
-
-
-
- YES
-
- YES
- -1.IBPluginDependency
- -2.IBPluginDependency
- -3.IBPluginDependency
- 20.IBPluginDependency
- 27.IBPluginDependency
- 28.IBPluginDependency
- 29.IBPluginDependency
- 30.IBPluginDependency
- 31.IBPluginDependency
- 32.IBPluginDependency
- 33.IBPluginDependency
- 36.IBPluginDependency
- 37.IBPluginDependency
- 5.IBEditorWindowLastContentRect
- 5.IBPluginDependency
- 5.ImportedFromIB2
- 5.editorWindowContentRectSynchronizationRect
-
-
- YES
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- {{430, 228}, {300, 400}}
- com.apple.InterfaceBuilder.CocoaPlugin
-
- {{0, 1145}, {300, 400}}
-
-
-
- YES
-
- YES
-
-
- YES
-
-
-
-
- YES
-
- YES
-
-
- YES
-
-
-
- 38
-
-
- 0
- ../CorePlotQCPlugin.xcodeproj
- 3
-
-
diff --git a/README.md b/README.md
index a7f06d994..b0b803087 100644
--- a/README.md
+++ b/README.md
@@ -1,19 +1,29 @@
+
+
+# Core Plot
+
+*Cocoa plotting framework for macOS, iOS, and tvOS.*
+
+[](https://core-plot.github.io) [](https://github.com/core-plot/core-plot/actions/workflows/ci.yml)
+[](https://cocoapods.org/pods/CorePlot) [](https://github.com/Carthage/Carthage) [](https://github.com/apple/swift-package-manager)
+[](https://opensource.org/licenses/BSD-3-Clause)
+
# Introduction
-Core Plot is a 2D plotting framework for Mac OS X and iOS. It is highly customizable and capable of drawing many types of plots. See the [Example Graphs](https://github.com/core-plot/core-plot/wiki/Example-Graphs) wiki page and the [example applications](https://github.com/core-plot/core-plot/tree/master/examples) for examples of some of its capabilities.
+Core Plot is a 2D plotting framework for macOS, iOS, and tvOS. It is highly customizable and capable of drawing many types of plots. See the [Example Graphs](https://github.com/core-plot/core-plot/wiki/Example-Graphs) wiki page and the [example applications](https://github.com/core-plot/core-plot/tree/master/examples) for examples of some of its capabilities.
# Getting Started
-See the [High Level Design Overview](https://github.com/core-plot/core-plot/wiki/High-Level-Design-Overview) wiki for an overview of Core Plot's architecture and the [Using Core Plot in an Application](http://code.google.com/p/core-plot/wiki/UsingCorePlotInApplications) wiki for information on how to use Core Plot in your own application.
+See the [High Level Design Overview](https://github.com/core-plot/core-plot/wiki/High-Level-Design-Overview) wiki for an overview of Core Plot's architecture and the [Using Core Plot in an Application](https://github.com/core-plot/core-plot/wiki/Using-Core-Plot-in-an-Application) wiki for information on how to use Core Plot in your own application.
# Documentation
Documentation of the Core Plot API and high-level architecture can be found in the following places:
* [Change log](https://github.com/core-plot/core-plot/blob/master/documentation/changelog.markdown)
- * [API documentation](http://core-plot.github.io/MacOS/index.html) for Mac
- * [API documentation](http://core-plot.github.io/iOS/index.html) for iOS
- * API documentation built with [Doxygen](http://www.doxygen.org/) and installed locally in Xcode (see the [instructions](https://github.com/core-plot/core-plot/blob/master/READMEs/README%20for%20Docs%20Install.md) in the **READMEs** folder for details)
+ * [API documentation](https://core-plot.github.io/MacOS/index.html) for Mac
+ * [API documentation](https://core-plot.github.io/iOS/index.html) for iOS and tvOS
+ * API documentation built with [Doxygen](https://www.doxygen.nl/) and installed locally in Xcode (see the [instructions](https://github.com/core-plot/core-plot/blob/master/READMEs/README%20for%20Docs%20Install.md) in the **READMEs** folder for details)
* [Project Wiki](https://github.com/core-plot/core-plot/wiki) on GitHub
* [Documentation](https://github.com/core-plot/core-plot/tree/master/documentation) folder in the code repository
@@ -21,13 +31,12 @@ Documentation of the Core Plot API and high-level architecture can be found in t
## Q&A Sites
- * [Core Plot](http://groups.google.com/group/coreplot-discuss) Google Group
- * Stackoverflow.com [core-plot tag](http://stackoverflow.com/questions/tagged/core-plot)
+ * [Core Plot](https://groups.google.com/group/coreplot-discuss) Google Group
+ * Stackoverflow.com [core-plot tag](https://stackoverflow.com/questions/tagged/core-plot)
## Social Networks
* [Twitter](https://twitter.com/CorePlot)
- * [App.net](https://alpha.app.net/coreplot); Subscribe to the [Announcements](https://app.net/c/2rw2) broadcast.
# Contributing to Core Plot
@@ -35,16 +44,12 @@ Core Plot is an open source project hosted on [GitHub](https://github.com/core-p
* [core-plot](https://github.com/core-plot/core-plot): This is main code repository with the framework and all examples. This is where you will find the release packages, wiki pages, and issue tracker.
- * [core-plot.github.io](https://github.com/core-plot/core-plot.github.io): This is the HTML API documentation. You can view the pages online at [http://core-plot.github.io](http://core-plot.github.io).
+ * [core-plot.github.io](https://github.com/core-plot/core-plot.github.io): This is the HTML API documentation. You can view the pages online at [https://core-plot.github.io](https://core-plot.github.io).
## Coding Standards
-Everyone has a their own preferred coding style, and no one way can be considered right. Nonetheless, in a project like Core Plot, with many developers contributing, it is worthwhile defining a set of basic coding standards to prevent a mishmash of different styles which can become frustrating when navigating the code base. See the file [Coding Style.markdown](https://github.com/core-plot/core-plot/blob/master/documentation/Coding%20Style.markdown) found in the [documentation](https://github.com/core-plot/core-plot/tree/master/documentation) directory of the project source for specific guidelines.
+Everyone has a their own preferred coding style, and no one way can be considered right. Nonetheless, in a project like Core Plot, with many developers contributing, it is worthwhile defining a set of basic coding standards to prevent a mishmash of different styles which can become frustrating when navigating the code base. See the file [CONTRIBUTING.md](https://github.com/core-plot/core-plot/blob/master/.github/CONTRIBUTING.md) found in the [.github](https://github.com/core-plot/core-plot/tree/master/.github) directory of the project source for specific guidelines.
-Core Plot includes a [script](https://github.com/core-plot/core-plot/blob/master/scripts/format_core_plot.sh) to run [Uncrustify](http://uncrustify.sourceforge.net) on the source code to standardize the formatting. All source code will be formatted with this tool before being committed to the Core Plot repository.
+Core Plot includes a [script](https://github.com/core-plot/core-plot/blob/master/scripts/format_core_plot.sh) to run [Uncrustify](https://github.com/uncrustify/uncrustify) on the source code to standardize the formatting. All source code will be formatted with this tool before being committed to the Core Plot repository.
## Testing
-Because Core Plot is intended to be used in scientific, financial, and other domains where correctness is paramount, unit testing is integrated into the framework. Good test coverage protects developers from introducing accidental regressions and frees them to experiment and refactor without fear of breaking things. See the [unit testing](https://github.com/core-plot/core-plot/wiki/Unit-Testing) wiki page for instructions on how to build unit tests for any new code you add to the project.
-
-# Support Core Plot
-
-
+Core Plot is intended to be applied in scientific, financial, and other domains where correctness is paramount. In order to assure the quality of the framework, unit testing is integrated. Good test coverage protects developers from introducing accidental regressions, and helps them to experiment and refactor without breaking existing code. See the [unit testing](https://github.com/core-plot/core-plot/wiki/Unit-Testing) wiki page for instructions on how to build unit tests for any new code you add to the project.
diff --git a/READMEs/README for Docs Install.md b/READMEs/README for Docs Install.md
index 01cf04a82..57c19c0bd 100644
--- a/READMEs/README for Docs Install.md
+++ b/READMEs/README for Docs Install.md
@@ -8,10 +8,10 @@
# To Build the Documentation From Source
-1. Install [Doxygen]([http://www.stack.nl/~dimitri/doxygen/download.html#latestsrc) in **/Applications**. Core Plot requires Doxygen 1.8.6 or later.
+1. Install [Doxygen]([http://www.stack.nl/~dimitri/doxygen/download.html#latestsrc) in **/Applications**. Core Plot requires Doxygen 1.8.11 or later.
-2. Install [Graphviz](http://www.graphviz.org/Download_macos.php). Core Plot requires Graphviz 2.34.0 or later.
+2. Install [Graphviz](http://www.graphviz.org/Download_macos.php). Core Plot requires Graphviz 2.36.0 or later.
-3. Open the **CorePlot** or **CorePlot-CocoaTouch** project in Xcode.
+3. Open the **CorePlot** project in Xcode.
-4. Build the "Documentation" target.
\ No newline at end of file
+4. Build the "Documentation-Mac" and/or "Documentation-iOS" targets.
\ No newline at end of file
diff --git a/READMEs/README for Static Library Install.md b/READMEs/README for Static Library Install.md
index 286d1e38a..ece0cccd7 100644
--- a/READMEs/README for Static Library Install.md
+++ b/READMEs/README for Static Library Install.md
@@ -5,8 +5,8 @@
2. Copy **libCorePlotCocoaTouch.a** to your Xcode project
3. Add the following flags to "Other Linker Flags" in your target build settings:
- `-ObjC -all_load`
+ `-ObjC`
-4. Add the **QuartzCore** framework to the project.
+4. Add the **QuartzCore** and **Accelerate** frameworks to the project.
5. Add a `CPTGraph` to your application. See the example apps in Source Code to see how, or read the documentation.
\ No newline at end of file
diff --git a/documentation/changelog.markdown b/documentation/changelog.markdown
index c3024755e..ed231ffeb 100644
--- a/documentation/changelog.markdown
+++ b/documentation/changelog.markdown
@@ -1,3 +1,96 @@
+# Release 2.3 (January 10, 2020)
+
+## Release Notes
+
+This release updates Core Plot to be compatible with Xcode 11 and Swift 5. It adds support for platform-native fonts and colors, including dynamic system colors.
+
+The Mac deployment target remains OS X 10.8. The iOS deployment target remains iOS 8.0 for both the framework and the static library. The tvOS deployment target remains tvOS 9.0.
+
+## Details
+- **New**: Added support for platform native fonts (`NSFont` and `UIFont`).
+- **New**: Added support for platform native colors (`NSColor` and `UIColor`), including dynamic system colors.
+- **New**: Added support for variable bar widths in bar, range, and trading range plots.
+- **Changed**: Updated the Core Plot project to prefer the new Xcode build system introduced with Xcode 9.
+- **Changed**: Updated all framework and example code to be compatible with Xcode 11 and the latest SDKs on all platforms.
+- **Changed**: Updated all Swift example apps to Swift 5.
+- **Changed**: Added arm64e as a valid build architecture on iOS.
+- **Changed**: Miscellaneous bug fixes and cleanup.
+- **Removed**: Removed DTrace probing to support Xcode's New Build System.
+- **Removed**: Removed docset generation. Docsets are no longer supported under Xcode 9.3.
+- **Removed**: Removed the AAPLot and StockPlot example apps because the Yahoo finance API that both relied for data is no longer available.
+
+
+
+# Release 2.2 (September 18, 2016)
+
+## Release Notes
+
+This release updates Core Plot to be compatible with Xcode 8 and Swift 3.
+
+The Mac deployment target remains OS X 10.8. The iOS deployment target has changed to iOS 8.0 for both the framework and the static library. The tvOS deployment target remains tvOS 9.0. Core Plot no longer requires the Accelerate framework.
+
+## Details
+- **New**: Increased the iOS deployment target to iOS 8.
+- **Changed**: Added Swift name mappings for all string constants.
+- **Changed**: Updated all Swift example apps to Swift 3.
+- **Changed**: Miscellaneous bug fixes and cleanup.
+- **Removed**: Removed the dependency on the Accelerate framework.
+
+
+
+# Release 2.1 (April 16, 2016)
+
+## Release Notes
+
+This release adds a tvOS framework and removes the deprecated `CorePlot-CocoaTouch.xcodeproj` project file. All Core Plot build targets for Mac, iOS, tvOS, and the documentation are in the `CorePlot.xcodeproj` project file. Annotated type definitions (e.g., `CPTNumberArray`) were changed to exclude the pointer star ("*") so they can be used interchangeably with class names.
+
+Curved scatter plots received several improvements. This release adds options to use Catmull-Rom and Hermite cubic splines to draw curved scatter plot lines. When a Hermite spline is used to draw a monotonic data series, the curved line will be monotonic as well. Plot spaces have new methods to scale the plot space to fit entire plots.
+
+The Mac deployment target has increased to OS X 10.8. The iOS deployment target remains iOS 6.0 for the static library and iOS 8.0 for the framework. The tvOS deployment target is tvOS 9.0.
+
+## Details
+- **New**: Increased the Mac deployment target to OS X 10.8.
+- **New**: Added a tvOS framework.
+- **New**: Added an option to anchor alternating band fills to a specific starting value.
+- **New**: Added support for animating `NSNumber` properties with `CPTAnimation`.
+- **New**: Added support for `NSSecureCoding`.
+- **New**: Added an option to draw legend swatches to the left or right side of the title.
+- **New**: Added options to use Catmull-Rom and Hermite cubic splines to draw curved scatter plot lines.
+- **New**: Added a method to automatically scale the plot space to fit the entire plot.
+- **Changed**: Changed the annotated type definitions to exclude the pointer star ("*").
+- **Changed**: Miscellaneous bug fixes and cleanup.
+- **Removed**: Removed the deprecated `CorePlot-CocoaTouch.xcodeproj` project file.
+
+
+
+# Release 2.0 (October 4, 2015)
+
+## Release Notes
+
+This release contains changes that will break apps built against earlier Core Plot
+versions. For a cleaner public API and ease of use from Swift, all public properties and methods that take `NSDecimal` values have been changed to take `NSNumber` values instead. See the [Release 2.0 API Changes](https://github.com/core-plot/core-plot/wiki/Core-Plot-API-Changes-Between-Versions-1.x-and-2.x) wiki page for a detailed list of the API changes.
+
+The Mac and iOS projects have been combined into one project file. The `CorePlot-CocoaTouch.xcodeproj` project file is deprecated and will be removed in a future release. There is now an iOS framework target in addition to the static library in the `CorePlot.xcodeproj` project file.
+
+The deployment target has increased to iOS 6.0 for the static library and iOS 8.0 for the framework. The Mac deployment target remains OS X 10.7.
+
+## Details
+- **New**: Combined the Mac and iOS projects and added an iOS framework target. The `CorePlot-CocoaTouch.xcodeproj` project file is deprecated.
+- **New**: Added histogram style options to `CPTScatterPlot`.
+- **New**: Added iOS unit tests.
+- **New**: Added plot space point conversion methods that take an `NSArray` of coordinate values.
+- **New**: Added nullability annotations to all property and method declarations.
+- **New**: Added type annotations to all arrays, sets, and dictionaries.
+- **New**: Added the log-modulus scale type.
+- **Changed**: Increased the deployment target to iOS 6.0 and Mac OS X 10.7. The iOS framework requires iOS 8 or higher.
+- **Changed**: Changed the Installation Directory for the Mac framework to "@rpath" and updated the Runpath Search Path in each Mac example app.
+- **Changed**: Changed all public properties and methods that take `NSDecimal` values to take `NSNumber` values instead. Use `NSDecimalNumber` to maintain full decimal precision.
+- **Changed**: Added properties to `CPTPlotRange` and `CPTMutablePlotRange` to read and write all range properties as `NSNumber`, `NSDecimal`, or `double`.
+- **Changed**: Renamed the `CPTXYAxis.orthogonalCoordinateDecimal` property to `CPTXYAxis.orthogonalPosition`.
+- **Changed**: Miscellaneous bug fixes and cleanup.
+
+
+
# Release 1.6 (May 9, 2015)
## Release Notes
diff --git a/documentation/doxygen/doxygen touch.config b/documentation/doxygen/doxygen touch.config
index 9d62214e5..01d4c0b2d 100644
--- a/documentation/doxygen/doxygen touch.config
+++ b/documentation/doxygen/doxygen touch.config
@@ -1,4 +1,4 @@
-# Doxyfile 1.8.9.1
+# Doxyfile 1.8.14
# This file describes the settings to be used by the documentation system
# doxygen (www.doxygen.org) for a project.
@@ -20,8 +20,8 @@
# This tag specifies the encoding used for all characters in the config file
# that follow. The default is UTF-8 which is also the encoding used for all text
# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
-# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv
-# for the list of possible encodings.
+# built into libc) for the transcoding. See
+# https://www.gnu.org/software/libiconv/ for the list of possible encodings.
# The default value is: UTF-8.
DOXYFILE_ENCODING = UTF-8
@@ -32,7 +32,7 @@ DOXYFILE_ENCODING = UTF-8
# title of most generated pages and in a few other places.
# The default value is: My Project.
-PROJECT_NAME = "Core Plot (iOS)"
+PROJECT_NAME = "Core Plot (iOS and tvOS)"
# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
# could be handy for archiving the generated documentation or if some version
@@ -44,7 +44,7 @@ PROJECT_NUMBER =
# for a project that appears at the top of each page and should give viewer a
# quick idea about the purpose of the project. Keep the description short.
-PROJECT_BRIEF = "Cocoa plotting framework for Mac OS X and iOS"
+PROJECT_BRIEF = "Cocoa plotting framework for macOS, iOS, and tvOS"
# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
# in the documentation. The maximum height of the logo should not exceed 55
@@ -226,7 +226,8 @@ TAB_SIZE = 4
# will allow you to put the command \sideeffect (or @sideeffect) in the
# documentation, which will result in a user-defined paragraph with heading
# "Side Effects:". You can put \n's in the value part of an alias to insert
-# newlines.
+# newlines (in the resulting output). You can put ^^ in the value part of an
+# alias to insert a newline as if a physical newline was in the original file.
ALIASES = "YES=@ref YES" \
"NO=@ref NO" \
@@ -312,6 +313,15 @@ EXTENSION_MAPPING =
MARKDOWN_SUPPORT = NO
+# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up
+# to that level are automatically included in the table of contents, even if
+# they do not have an id attribute.
+# Note: This feature currently applies only to Markdown headings.
+# Minimum value: 0, maximum value: 99, default value: 0.
+# This tag requires that the tag MARKDOWN_SUPPORT is set to YES.
+
+TOC_INCLUDE_HEADINGS = 0
+
# When enabled doxygen tries to link words that correspond to documented
# classes, or namespaces to their corresponding documentation. Such a link can
# be prevented in individual cases by putting a % sign in front of the word or
@@ -337,7 +347,7 @@ BUILTIN_STL_SUPPORT = NO
CPP_CLI_SUPPORT = NO
# Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
-# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen
+# https://www.riverbankcomputing.com/software/sip/intro) sources only. Doxygen
# will parse them like normal C++ but will assume all classes use public instead
# of private inheritance when no explicit protection keyword is present.
# The default value is: NO.
@@ -362,6 +372,13 @@ IDL_PROPERTY_SUPPORT = YES
DISTRIBUTE_GROUP_DOC = NO
+# If one adds a struct or class to a group and this option is enabled, then also
+# any nested class or struct is added to the same group. By default this option
+# is disabled and one has to add nested compounds explicitly via \ingroup.
+# The default value is: NO.
+
+GROUP_NESTED_COMPOUNDS = NO
+
# Set the SUBGROUPING tag to YES to allow class member groups of the same type
# (for instance a group of public functions) to be put as a subgroup of that
# type (e.g. under the Public Functions section). Set it to NO to prevent
@@ -701,7 +718,7 @@ LAYOUT_FILE = "$(SOURCE_ROOT)/../documentation/doxygen/DoxygenLayout.
# The CITE_BIB_FILES tag can be used to specify one or more bib files containing
# the reference definitions. This must be a list of .bib files. The .bib
# extension is automatically appended if omitted. This requires the bibtex tool
-# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.
+# to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info.
# For LaTeX the style of the bibliography can be controlled using
# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
# search path. See also \cite for info how to create references.
@@ -751,6 +768,12 @@ WARN_IF_DOC_ERROR = YES
WARN_NO_PARAMDOC = YES
+# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when
+# a warning is encountered.
+# The default value is: NO.
+
+WARN_AS_ERROR = NO
+
# The WARN_FORMAT tag determines the format of the warning messages that doxygen
# can produce. The string should contain the $file, $line, and $text tags, which
# will be replaced by the file and line number from which the warning originated
@@ -774,7 +797,7 @@ WARN_LOGFILE =
# The INPUT tag is used to specify the files and/or directories that contain
# documented source files. You may enter file names like myfile.cpp or
# directories like /usr/src/myproject. Separate the files or directories with
-# spaces.
+# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
# Note: If this tag is empty the current directory is searched.
INPUT = "$(SOURCE_ROOT)/CorePlot-CocoaTouch.h" \
@@ -784,7 +807,7 @@ INPUT = "$(SOURCE_ROOT)/CorePlot-CocoaTouch.h" \
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
# libiconv (or the iconv built into libc) for the transcoding. See the libiconv
-# documentation (see: http://www.gnu.org/software/libiconv) for the list of
+# documentation (see: https://www.gnu.org/software/libiconv/) for the list of
# possible encodings.
# The default value is: UTF-8.
@@ -792,12 +815,17 @@ INPUT_ENCODING = UTF-8
# If the value of the INPUT tag contains directories, you can use the
# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
-# *.h) to filter out the source-files in the directories. If left blank the
-# following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii,
-# *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp,
-# *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown,
-# *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf,
-# *.qsf, *.as and *.js.
+# *.h) to filter out the source-files in the directories.
+#
+# Note that for custom extensions or not directly supported extensions you also
+# need to set EXTENSION_MAPPING for the extension otherwise the files are not
+# read by doxygen.
+#
+# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp,
+# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h,
+# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc,
+# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f95, *.f03, *.f08,
+# *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf and *.qsf.
FILE_PATTERNS =
@@ -887,6 +915,10 @@ IMAGE_PATH = "$(SOURCE_ROOT)/../documentation/"
# Note that the filter must not add or remove lines; it is applied before the
# code is scanned, but not when the output code is generated. If lines are added
# or removed, the anchors will not be placed correctly.
+#
+# Note that for custom extensions or not directly supported extensions you also
+# need to set EXTENSION_MAPPING for the extension otherwise the files are not
+# properly processed by doxygen.
INPUT_FILTER =
@@ -896,6 +928,10 @@ INPUT_FILTER =
# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how
# filters are used. If the FILTER_PATTERNS tag is empty or if none of the
# patterns match the file name, INPUT_FILTER is applied.
+#
+# Note that for custom extensions or not directly supported extensions you also
+# need to set EXTENSION_MAPPING for the extension otherwise the files are not
+# properly processed by doxygen.
FILTER_PATTERNS =
@@ -980,7 +1016,7 @@ SOURCE_TOOLTIPS = YES
# If the USE_HTAGS tag is set to YES then the references to source code will
# point to the HTML generated by the htags(1) tool instead of doxygen built-in
# source browser. The htags tool is part of GNU's global source tagging system
-# (see http://www.gnu.org/software/global/global.html). You will need version
+# (see https://www.gnu.org/software/global/global.html). You will need version
# 4.8.6 or higher.
#
# To use it do the following:
@@ -1013,7 +1049,7 @@ VERBATIM_HEADERS = YES
# rich C++ code for which doxygen's built-in parser lacks the necessary type
# information.
# Note: The availability of this option depends on whether or not doxygen was
-# compiled with the --with-libclang option.
+# generated with the -Duse-libclang=ON option for CMake.
# The default value is: NO.
CLANG_ASSISTED_PARSING = NO
@@ -1026,6 +1062,17 @@ CLANG_ASSISTED_PARSING = NO
CLANG_OPTIONS =
+# If clang assisted parsing is enabled you can provide the clang parser with the
+# path to the compilation database (see:
+# http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html) used when the files
+# were built. This is equivalent to specifying the "-p" option to a clang tool,
+# such as clang-check. These options will then be passed to the parser.
+# Note: The availability of this option depends on whether or not doxygen was
+# generated with the -Duse-libclang=ON option for CMake.
+# The default value is: 0.
+
+CLANG_COMPILATION_DATABASE_PATH = 0
+
#---------------------------------------------------------------------------
# Configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
@@ -1145,7 +1192,7 @@ HTML_EXTRA_FILES =
# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
# will adjust the colors in the style sheet and background images according to
# this color. Hue is specified as an angle on a colorwheel, see
-# http://en.wikipedia.org/wiki/Hue for more information. For instance the value
+# https://en.wikipedia.org/wiki/Hue for more information. For instance the value
# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
# purple, and 360 is red again.
# Minimum value: 0, maximum value: 359, default value: 220.
@@ -1174,12 +1221,24 @@ HTML_COLORSTYLE_GAMMA = 80
# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
# page will contain the date and time when the page was generated. Setting this
-# to NO can help when comparing the output of multiple runs.
-# The default value is: YES.
+# to YES can help to show when doxygen was last run and thus if the
+# documentation is up to date.
+# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.
HTML_TIMESTAMP = NO
+# If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML
+# documentation will contain a main index with vertical navigation menus that
+# are dynamically created via Javascript. If disabled, the navigation index will
+# consists of multiple levels of tabs that are statically embedded in every HTML
+# page. Disable this option to support browsers that do not have Javascript,
+# like the Qt help browser.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_DYNAMIC_MENUS = YES
+
# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
# documentation will contain sections that can be hidden and shown after the
# page has loaded.
@@ -1203,12 +1262,12 @@ HTML_INDEX_NUM_ENTRIES = 100
# If the GENERATE_DOCSET tag is set to YES, additional index files will be
# generated that can be used as input for Apple's Xcode 3 integrated development
-# environment (see: http://developer.apple.com/tools/xcode/), introduced with
+# environment (see: https://developer.apple.com/tools/xcode/), introduced with
# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
# Makefile in the HTML output directory. Running make will produce the docset in
# that directory and running make install will install the docset in
# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
-# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
+# startup. See https://developer.apple.com/tools/creatingdocsetswithdoxygen.html
# for more information.
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.
@@ -1324,7 +1383,7 @@ QCH_FILE =
# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
# Project output. For more information please see Qt Help Project / Namespace
-# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).
+# (see: http://doc.qt.io/qt-4.8/qthelpproject.html#namespace).
# The default value is: org.doxygen.Project.
# This tag requires that the tag GENERATE_QHP is set to YES.
@@ -1332,8 +1391,7 @@ QHP_NAMESPACE =
# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
# Help Project output. For more information please see Qt Help Project / Virtual
-# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-
-# folders).
+# Folders (see: http://doc.qt.io/qt-4.8/qthelpproject.html#virtual-folders).
# The default value is: doc.
# This tag requires that the tag GENERATE_QHP is set to YES.
@@ -1341,23 +1399,21 @@ QHP_VIRTUAL_FOLDER = doc
# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
# filter to add. For more information please see Qt Help Project / Custom
-# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
-# filters).
+# Filters (see: http://doc.qt.io/qt-4.8/qthelpproject.html#custom-filters).
# This tag requires that the tag GENERATE_QHP is set to YES.
QHP_CUST_FILTER_NAME =
# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
# custom filter to add. For more information please see Qt Help Project / Custom
-# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
-# filters).
+# Filters (see: http://doc.qt.io/qt-4.8/qthelpproject.html#custom-filters).
# This tag requires that the tag GENERATE_QHP is set to YES.
QHP_CUST_FILTER_ATTRS =
# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
# project's filter section matches. Qt Help Project / Filter Attributes (see:
-# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
+# http://doc.qt.io/qt-4.8/qthelpproject.html#filter-attributes).
# This tag requires that the tag GENERATE_QHP is set to YES.
QHP_SECT_FILTER_ATTRS =
@@ -1450,7 +1506,7 @@ EXT_LINKS_IN_WINDOW = NO
FORMULA_FONTSIZE = 10
-# Use the FORMULA_TRANPARENT tag to determine whether or not the images
+# Use the FORMULA_TRANSPARENT tag to determine whether or not the images
# generated for formulas are transparent PNGs. Transparent PNGs are not
# supported properly for IE 6.0, but are supported on all modern browsers.
#
@@ -1462,7 +1518,7 @@ FORMULA_FONTSIZE = 10
FORMULA_TRANSPARENT = YES
# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
-# http://www.mathjax.org) which uses client side Javascript for the rendering
+# https://www.mathjax.org) which uses client side Javascript for the rendering
# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX
# installed or if you want to formulas look prettier in the HTML output. When
# enabled you may also need to install MathJax separately and configure the path
@@ -1489,8 +1545,8 @@ MATHJAX_FORMAT = HTML-CSS
# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
# Content Delivery Network so you can quickly see the result without installing
# MathJax. However, it is strongly recommended to install a local copy of
-# MathJax from http://www.mathjax.org before deployment.
-# The default value is: http://cdn.mathjax.org/mathjax/latest.
+# MathJax from https://www.mathjax.org before deployment.
+# The default value is: https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/.
# This tag requires that the tag USE_MATHJAX is set to YES.
MATHJAX_RELPATH = http://www.mathjax.org/mathjax
@@ -1551,7 +1607,7 @@ SERVER_BASED_SEARCH = NO
#
# Doxygen ships with an example indexer (doxyindexer) and search engine
# (doxysearch.cgi) which are based on the open source search engine library
-# Xapian (see: http://xapian.org/).
+# Xapian (see: https://xapian.org/).
#
# See the section "External Indexing and Searching" for details.
# The default value is: NO.
@@ -1564,7 +1620,7 @@ EXTERNAL_SEARCH = NO
#
# Doxygen ships with an example indexer (doxyindexer) and search engine
# (doxysearch.cgi) which are based on the open source search engine library
-# Xapian (see: http://xapian.org/). See the section "External Indexing and
+# Xapian (see: https://xapian.org/). See the section "External Indexing and
# Searching" for details.
# This tag requires that the tag SEARCHENGINE is set to YES.
@@ -1649,9 +1705,12 @@ COMPACT_LATEX = NO
PAPER_TYPE = letter
# The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
-# that should be included in the LaTeX output. To get the times font for
-# instance you can specify
-# EXTRA_PACKAGES=times
+# that should be included in the LaTeX output. The package can be specified just
+# by its name or with the correct syntax as to be used with the LaTeX
+# \usepackage command. To get the times font for instance you can specify :
+# EXTRA_PACKAGES=times or EXTRA_PACKAGES={times}
+# To use the option intlimits with the amsmath package you can specify:
+# EXTRA_PACKAGES=[intlimits]{amsmath}
# If left blank no extra packages will be included.
# This tag requires that the tag GENERATE_LATEX is set to YES.
@@ -1748,12 +1807,20 @@ LATEX_SOURCE_CODE = NO
# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
# bibliography, e.g. plainnat, or ieeetr. See
-# http://en.wikipedia.org/wiki/BibTeX and \cite for more info.
+# https://en.wikipedia.org/wiki/BibTeX and \cite for more info.
# The default value is: plain.
# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_BIB_STYLE = plain
+# If the LATEX_TIMESTAMP tag is set to YES then the footer of each generated
+# page will contain the date and time when the page was generated. Setting this
+# to NO can help when comparing the output of multiple runs.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_TIMESTAMP = NO
+
#---------------------------------------------------------------------------
# Configuration options related to the RTF output
#---------------------------------------------------------------------------
@@ -1923,9 +1990,9 @@ DOCBOOK_PROGRAMLISTING = NO
#---------------------------------------------------------------------------
# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an
-# AutoGen Definitions (see http://autogen.sf.net) file that captures the
-# structure of the code including all documentation. Note that this feature is
-# still experimental and incomplete at the moment.
+# AutoGen Definitions (see http://autogen.sourceforge.net/) file that captures
+# the structure of the code including all documentation. Note that this feature
+# is still experimental and incomplete at the moment.
# The default value is: NO.
GENERATE_AUTOGEN_DEF = NO
@@ -2026,9 +2093,17 @@ INCLUDE_FILE_PATTERNS =
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
PREDEFINED = TARGET_OS_IPHONE, \
- TARGET_IPHONE_SIMULATOR, \
- "NS_ENUM(_type,_name):=enum _name : _type _name; enum _name : _type" \
- "NS_OPTIONS(_type,_name):=enum _name : _type _name; enum _name : _type"
+ TARGET_OS_TV, \
+ TARGET_OS_SIMULATOR, \
+ "NS_DESIGNATED_INITIALIZER:= " \
+ "NS_RETURNS_INNER_POINTER:= " \
+ "NS_ENUM(_type,_name):=enum _name : _type _name; enum _name : _type " \
+ "NS_CLOSED_ENUM(_type,_name):=enum _name : _type _name; enum _name : _type " \
+ "NS_OPTIONS(_type,_name):=enum _name : _type _name; enum _name : _type " \
+ "NS_SWIFT_NAME(_name):= " \
+ "cpt_deprecated:= " \
+ "cpt_swift_enum:= " \
+ "cpt_swift_struct:= "
# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
# tag can be used to specify a list of macro names that should be expanded. The
@@ -2255,7 +2330,8 @@ INCLUDED_BY_GRAPH = YES
#
# Note that enabling this option will significantly increase the time of a run.
# So in most cases it will be better to enable call graphs for selected
-# functions only using the \callgraph command.
+# functions only using the \callgraph command. Disabling a call graph can be
+# accomplished by means of the command \hidecallgraph.
# The default value is: NO.
# This tag requires that the tag HAVE_DOT is set to YES.
@@ -2266,7 +2342,8 @@ CALL_GRAPH = NO
#
# Note that enabling this option will significantly increase the time of a run.
# So in most cases it will be better to enable caller graphs for selected
-# functions only using the \callergraph command.
+# functions only using the \callergraph command. Disabling a caller graph can be
+# accomplished by means of the command \hidecallergraph.
# The default value is: NO.
# This tag requires that the tag HAVE_DOT is set to YES.
@@ -2289,11 +2366,15 @@ GRAPHICAL_HIERARCHY = YES
DIRECTORY_GRAPH = YES
# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
-# generated by dot.
+# generated by dot. For an explanation of the image formats see the section
+# output formats in the documentation of the dot tool (Graphviz (see:
+# http://www.graphviz.org/)).
# Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
# to make the SVG files visible in IE 9+ (other browsers do not have this
# requirement).
-# Possible values are: png, jpg, gif and svg.
+# Possible values are: png, jpg, gif, svg, png:gd, png:gd:gd, png:cairo,
+# png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and
+# png:gdiplus:gdiplus.
# The default value is: png.
# This tag requires that the tag HAVE_DOT is set to YES.
@@ -2344,6 +2425,11 @@ DIAFILE_DIRS =
PLANTUML_JAR_PATH =
+# When using plantuml, the PLANTUML_CFG_FILE tag can be used to specify a
+# configuration file for plantuml.
+
+PLANTUML_CFG_FILE =
+
# When using plantuml, the specified paths are searched for files specified by
# the !include statement in a plantuml block.
diff --git a/documentation/doxygen/doxygen-cocoa-tags.xml b/documentation/doxygen/doxygen-cocoa-tags.xml
index 956632492..1578dd526 100644
--- a/documentation/doxygen/doxygen-cocoa-tags.xml
+++ b/documentation/doxygen/doxygen-cocoa-tags.xml
@@ -258,6 +258,15 @@
NSFastEnumeration-p
NSMutableCopying-p
+
+ NSMutableDictionary
+ https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSMutableDictionary_Class/Reference/Reference.html
+ NSObject
+ NSCoding-p
+ NSCopying-p
+ NSFastEnumeration-p
+ NSMutableCopying-p
+
NSEvent
https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSEvent_Class/Reference/Reference.html
@@ -511,6 +520,24 @@
NSFastEnumeration-p
NSMutableCopying-p
+
+ NSMutableSet
+ https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSMutableSet_Class/Reference/Reference.html
+ NSObject
+ NSCoding-p
+ NSCopying-p
+ NSFastEnumeration-p
+ NSMutableCopying-p
+
+
+ NSSecureCoding
+ https://developer.apple.com/library/mac/documentation/Foundation/Reference/NSSecureCoding_Protocol_Ref/
+
+ BOOL
+ supportsSecureCoding:
+ //apple_ref/occ/intfcm/NSSecureCoding/supportsSecureCoding
+
+
NSString
https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html
@@ -731,6 +758,21 @@
+
+ CAAnimationDelegate
+ https://developer.apple.com/library/mac/#documentation/GraphicsImaging/Reference/CAAnimationDelegate_protocol/Introduction/Introduction.html/
+ NSObject-p
+
+ void
+ animationDidStart:
+ //apple_ref/occ/intfcm/CAAnimationDelegate/animationDidStart
+
+
+ void
+ animationDidStop:finished:
+ //apple_ref/occ/intfcm/CAAnimationDelegate/animationDidStopfinished
+
+
CALayer
https://developer.apple.com/library/mac/#documentation/GraphicsImaging/Reference/CALayer_class/Introduction/Introduction.html
@@ -833,6 +875,36 @@
//apple_ref/occ/instm/CALayer/setNeedsLayout
+
+ CALayerDelegate
+ https://developer.apple.com/library/mac/#documentation/GraphicsImaging/Reference/CALayerDelegate_protocol/Introduction/Introduction.html/
+ NSObject-p
+
+ id
+ actionForLayer:forKey:
+ //apple_ref/occ/intfcm/CALayerDelegate/actionForLayerforKey
+
+
+ void
+ displayLayer:
+ //apple_ref/occ/intfcm/CALayerDelegate/displayLayer
+
+
+ void
+ drawLayer:inContext:
+ //apple_ref/occ/intfcm/CALayerDelegate/drawLayerinContext
+
+
+ void
+ layerWillDraw:
+ //apple_ref/occ/intfcm/CALayerDelegate/layerWillDraw
+
+
+ void
+ layoutSublayersOfLayer:
+ //apple_ref/occ/intfcm/CALayerDelegate/layoutSublayersOfLayer
+
+
CAMediaTiming
https://developer.apple.com/library/mac/#documentation/GraphicsImaging/Reference/CAMediaTiming_protocol/Introduction/Introduction.html
diff --git a/documentation/doxygen/doxygen-cocoa-touch-tags.xml b/documentation/doxygen/doxygen-cocoa-touch-tags.xml
index 7b10f8fa8..1de3c13d3 100644
--- a/documentation/doxygen/doxygen-cocoa-touch-tags.xml
+++ b/documentation/doxygen/doxygen-cocoa-touch-tags.xml
@@ -241,6 +241,15 @@
NSFastEnumeration-p
NSMutableCopying-p
+
+ NSMutableDictionary
+ https://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Classes/NSMutableDictionary_Class/Reference/Reference.html
+ NSObject
+ NSCoding-p
+ NSCopying-p
+ NSFastEnumeration-p
+ NSMutableCopying-p
+
UIEvent
https://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIEvent_Class/Reference/Reference.html
@@ -440,11 +449,29 @@
NSFastEnumeration-p
NSMutableCopying-p
+
+ NSMutableSet
+ https://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Classes/NSMutableSet_Class/Reference/Reference.html
+ NSObject
+ NSCoding-p
+ NSCopying-p
+ NSFastEnumeration-p
+ NSMutableCopying-p
+
UIResponder
https://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIResponder_Class/Reference/Reference.html#//apple_ref/occ/cl/UIResponder
NSObject
+
+ NSSecureCoding
+ https://developer.apple.com/library/ios/documentation/Foundation/Reference/NSSecureCoding_Protocol_Ref/
+
+ BOOL
+ supportsSecureCoding:
+ //apple_ref/occ/intfcm/NSSecureCoding/supportsSecureCoding
+
+
NSString
https://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html
@@ -660,6 +687,21 @@
+
+ CAAnimationDelegate
+ https://developer.apple.com/library/ios/documentation/Foundation/Reference/CAAnimationDelegate_Protocol_Ref/
+ NSObject-p
+
+ void
+ animationDidStart:
+ //apple_ref/occ/intfcm/CAAnimationDelegate/animationDidStart
+
+
+ void
+ animationDidStop:finished:
+ //apple_ref/occ/intfcm/CAAnimationDelegate/animationDidStopfinished
+
+
CALayer
https://developer.apple.com/library/ios/#documentation/GraphicsImaging/Reference/CALayer_class/Introduction/Introduction.html
@@ -761,6 +803,36 @@
//apple_ref/occ/instm/CALayer/setNeedsLayout
+
+ CALayerDelegate
+ https://developer.apple.com/library/ios/documentation/Foundation/Reference/CALayerDelegate_Protocol_Ref/
+ NSObject-p
+
+ id
+ actionForLayer:forKey:
+ //apple_ref/occ/intfcm/CALayerDelegate/actionForLayerforKey
+
+
+ void
+ displayLayer:
+ //apple_ref/occ/intfcm/CALayerDelegate/displayLayer
+
+
+ void
+ drawLayer:inContext:
+ //apple_ref/occ/intfcm/CALayerDelegate/drawLayerinContext
+
+
+ void
+ layerWillDraw:
+ //apple_ref/occ/intfcm/CALayerDelegate/layerWillDraw
+
+
+ void
+ layoutSublayersOfLayer:
+ //apple_ref/occ/intfcm/CALayerDelegate/layoutSublayersOfLayer
+
+
CAMediaTiming
https://developer.apple.com/library/ios/#documentation/GraphicsImaging/Reference/CAMediaTiming_protocol/Introduction/Introduction.html
@@ -927,4 +999,4 @@
//apple_ref/c/tdef/NSZone
-
\ No newline at end of file
+
diff --git a/documentation/doxygen/doxygen.config b/documentation/doxygen/doxygen.config
index 6324933d5..46ed09de4 100644
--- a/documentation/doxygen/doxygen.config
+++ b/documentation/doxygen/doxygen.config
@@ -1,4 +1,4 @@
-# Doxyfile 1.8.9.1
+# Doxyfile 1.8.14
# This file describes the settings to be used by the documentation system
# doxygen (www.doxygen.org) for a project.
@@ -20,8 +20,8 @@
# This tag specifies the encoding used for all characters in the config file
# that follow. The default is UTF-8 which is also the encoding used for all text
# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
-# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv
-# for the list of possible encodings.
+# built into libc) for the transcoding. See
+# https://www.gnu.org/software/libiconv/ for the list of possible encodings.
# The default value is: UTF-8.
DOXYFILE_ENCODING = UTF-8
@@ -32,7 +32,7 @@ DOXYFILE_ENCODING = UTF-8
# title of most generated pages and in a few other places.
# The default value is: My Project.
-PROJECT_NAME = "Core Plot (Mac OS)"
+PROJECT_NAME = "Core Plot (macOS)"
# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
# could be handy for archiving the generated documentation or if some version
@@ -44,7 +44,7 @@ PROJECT_NUMBER =
# for a project that appears at the top of each page and should give viewer a
# quick idea about the purpose of the project. Keep the description short.
-PROJECT_BRIEF = "Cocoa plotting framework for Mac OS X and iOS"
+PROJECT_BRIEF = "Cocoa plotting framework for macOS, iOS, and tvOS"
# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
# in the documentation. The maximum height of the logo should not exceed 55
@@ -226,7 +226,8 @@ TAB_SIZE = 4
# will allow you to put the command \sideeffect (or @sideeffect) in the
# documentation, which will result in a user-defined paragraph with heading
# "Side Effects:". You can put \n's in the value part of an alias to insert
-# newlines.
+# newlines (in the resulting output). You can put ^^ in the value part of an
+# alias to insert a newline as if a physical newline was in the original file.
ALIASES = "YES=@ref YES" \
"NO=@ref NO" \
@@ -312,6 +313,15 @@ EXTENSION_MAPPING =
MARKDOWN_SUPPORT = NO
+# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up
+# to that level are automatically included in the table of contents, even if
+# they do not have an id attribute.
+# Note: This feature currently applies only to Markdown headings.
+# Minimum value: 0, maximum value: 99, default value: 0.
+# This tag requires that the tag MARKDOWN_SUPPORT is set to YES.
+
+TOC_INCLUDE_HEADINGS = 0
+
# When enabled doxygen tries to link words that correspond to documented
# classes, or namespaces to their corresponding documentation. Such a link can
# be prevented in individual cases by putting a % sign in front of the word or
@@ -337,7 +347,7 @@ BUILTIN_STL_SUPPORT = NO
CPP_CLI_SUPPORT = NO
# Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
-# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen
+# https://www.riverbankcomputing.com/software/sip/intro) sources only. Doxygen
# will parse them like normal C++ but will assume all classes use public instead
# of private inheritance when no explicit protection keyword is present.
# The default value is: NO.
@@ -362,6 +372,13 @@ IDL_PROPERTY_SUPPORT = YES
DISTRIBUTE_GROUP_DOC = NO
+# If one adds a struct or class to a group and this option is enabled, then also
+# any nested class or struct is added to the same group. By default this option
+# is disabled and one has to add nested compounds explicitly via \ingroup.
+# The default value is: NO.
+
+GROUP_NESTED_COMPOUNDS = NO
+
# Set the SUBGROUPING tag to YES to allow class member groups of the same type
# (for instance a group of public functions) to be put as a subgroup of that
# type (e.g. under the Public Functions section). Set it to NO to prevent
@@ -701,7 +718,7 @@ LAYOUT_FILE = "$(SOURCE_ROOT)/../documentation/doxygen/DoxygenLayout.
# The CITE_BIB_FILES tag can be used to specify one or more bib files containing
# the reference definitions. This must be a list of .bib files. The .bib
# extension is automatically appended if omitted. This requires the bibtex tool
-# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.
+# to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info.
# For LaTeX the style of the bibliography can be controlled using
# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
# search path. See also \cite for info how to create references.
@@ -751,6 +768,12 @@ WARN_IF_DOC_ERROR = YES
WARN_NO_PARAMDOC = YES
+# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when
+# a warning is encountered.
+# The default value is: NO.
+
+WARN_AS_ERROR = NO
+
# The WARN_FORMAT tag determines the format of the warning messages that doxygen
# can produce. The string should contain the $file, $line, and $text tags, which
# will be replaced by the file and line number from which the warning originated
@@ -774,7 +797,7 @@ WARN_LOGFILE =
# The INPUT tag is used to specify the files and/or directories that contain
# documented source files. You may enter file names like myfile.cpp or
# directories like /usr/src/myproject. Separate the files or directories with
-# spaces.
+# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
# Note: If this tag is empty the current directory is searched.
INPUT = "$(SOURCE_ROOT)/CorePlot.h" \
@@ -784,7 +807,7 @@ INPUT = "$(SOURCE_ROOT)/CorePlot.h" \
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
# libiconv (or the iconv built into libc) for the transcoding. See the libiconv
-# documentation (see: http://www.gnu.org/software/libiconv) for the list of
+# documentation (see: https://www.gnu.org/software/libiconv/) for the list of
# possible encodings.
# The default value is: UTF-8.
@@ -792,12 +815,17 @@ INPUT_ENCODING = UTF-8
# If the value of the INPUT tag contains directories, you can use the
# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
-# *.h) to filter out the source-files in the directories. If left blank the
-# following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii,
-# *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp,
-# *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown,
-# *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf,
-# *.qsf, *.as and *.js.
+# *.h) to filter out the source-files in the directories.
+#
+# Note that for custom extensions or not directly supported extensions you also
+# need to set EXTENSION_MAPPING for the extension otherwise the files are not
+# read by doxygen.
+#
+# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp,
+# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h,
+# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc,
+# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f95, *.f03, *.f08,
+# *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf and *.qsf.
FILE_PATTERNS =
@@ -887,6 +915,10 @@ IMAGE_PATH = "$(SOURCE_ROOT)/../documentation/"
# Note that the filter must not add or remove lines; it is applied before the
# code is scanned, but not when the output code is generated. If lines are added
# or removed, the anchors will not be placed correctly.
+#
+# Note that for custom extensions or not directly supported extensions you also
+# need to set EXTENSION_MAPPING for the extension otherwise the files are not
+# properly processed by doxygen.
INPUT_FILTER =
@@ -896,6 +928,10 @@ INPUT_FILTER =
# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how
# filters are used. If the FILTER_PATTERNS tag is empty or if none of the
# patterns match the file name, INPUT_FILTER is applied.
+#
+# Note that for custom extensions or not directly supported extensions you also
+# need to set EXTENSION_MAPPING for the extension otherwise the files are not
+# properly processed by doxygen.
FILTER_PATTERNS =
@@ -980,7 +1016,7 @@ SOURCE_TOOLTIPS = YES
# If the USE_HTAGS tag is set to YES then the references to source code will
# point to the HTML generated by the htags(1) tool instead of doxygen built-in
# source browser. The htags tool is part of GNU's global source tagging system
-# (see http://www.gnu.org/software/global/global.html). You will need version
+# (see https://www.gnu.org/software/global/global.html). You will need version
# 4.8.6 or higher.
#
# To use it do the following:
@@ -1013,7 +1049,7 @@ VERBATIM_HEADERS = YES
# rich C++ code for which doxygen's built-in parser lacks the necessary type
# information.
# Note: The availability of this option depends on whether or not doxygen was
-# compiled with the --with-libclang option.
+# generated with the -Duse-libclang=ON option for CMake.
# The default value is: NO.
CLANG_ASSISTED_PARSING = NO
@@ -1026,6 +1062,17 @@ CLANG_ASSISTED_PARSING = NO
CLANG_OPTIONS =
+# If clang assisted parsing is enabled you can provide the clang parser with the
+# path to the compilation database (see:
+# http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html) used when the files
+# were built. This is equivalent to specifying the "-p" option to a clang tool,
+# such as clang-check. These options will then be passed to the parser.
+# Note: The availability of this option depends on whether or not doxygen was
+# generated with the -Duse-libclang=ON option for CMake.
+# The default value is: 0.
+
+CLANG_COMPILATION_DATABASE_PATH = 0
+
#---------------------------------------------------------------------------
# Configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
@@ -1145,7 +1192,7 @@ HTML_EXTRA_FILES =
# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
# will adjust the colors in the style sheet and background images according to
# this color. Hue is specified as an angle on a colorwheel, see
-# http://en.wikipedia.org/wiki/Hue for more information. For instance the value
+# https://en.wikipedia.org/wiki/Hue for more information. For instance the value
# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
# purple, and 360 is red again.
# Minimum value: 0, maximum value: 359, default value: 220.
@@ -1174,12 +1221,24 @@ HTML_COLORSTYLE_GAMMA = 80
# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
# page will contain the date and time when the page was generated. Setting this
-# to NO can help when comparing the output of multiple runs.
-# The default value is: YES.
+# to YES can help to show when doxygen was last run and thus if the
+# documentation is up to date.
+# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.
HTML_TIMESTAMP = NO
+# If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML
+# documentation will contain a main index with vertical navigation menus that
+# are dynamically created via Javascript. If disabled, the navigation index will
+# consists of multiple levels of tabs that are statically embedded in every HTML
+# page. Disable this option to support browsers that do not have Javascript,
+# like the Qt help browser.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_DYNAMIC_MENUS = YES
+
# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
# documentation will contain sections that can be hidden and shown after the
# page has loaded.
@@ -1203,12 +1262,12 @@ HTML_INDEX_NUM_ENTRIES = 100
# If the GENERATE_DOCSET tag is set to YES, additional index files will be
# generated that can be used as input for Apple's Xcode 3 integrated development
-# environment (see: http://developer.apple.com/tools/xcode/), introduced with
+# environment (see: https://developer.apple.com/tools/xcode/), introduced with
# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
# Makefile in the HTML output directory. Running make will produce the docset in
# that directory and running make install will install the docset in
# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
-# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
+# startup. See https://developer.apple.com/tools/creatingdocsetswithdoxygen.html
# for more information.
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.
@@ -1324,7 +1383,7 @@ QCH_FILE =
# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
# Project output. For more information please see Qt Help Project / Namespace
-# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).
+# (see: http://doc.qt.io/qt-4.8/qthelpproject.html#namespace).
# The default value is: org.doxygen.Project.
# This tag requires that the tag GENERATE_QHP is set to YES.
@@ -1332,8 +1391,7 @@ QHP_NAMESPACE =
# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
# Help Project output. For more information please see Qt Help Project / Virtual
-# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-
-# folders).
+# Folders (see: http://doc.qt.io/qt-4.8/qthelpproject.html#virtual-folders).
# The default value is: doc.
# This tag requires that the tag GENERATE_QHP is set to YES.
@@ -1341,23 +1399,21 @@ QHP_VIRTUAL_FOLDER = doc
# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
# filter to add. For more information please see Qt Help Project / Custom
-# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
-# filters).
+# Filters (see: http://doc.qt.io/qt-4.8/qthelpproject.html#custom-filters).
# This tag requires that the tag GENERATE_QHP is set to YES.
QHP_CUST_FILTER_NAME =
# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
# custom filter to add. For more information please see Qt Help Project / Custom
-# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
-# filters).
+# Filters (see: http://doc.qt.io/qt-4.8/qthelpproject.html#custom-filters).
# This tag requires that the tag GENERATE_QHP is set to YES.
QHP_CUST_FILTER_ATTRS =
# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
# project's filter section matches. Qt Help Project / Filter Attributes (see:
-# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
+# http://doc.qt.io/qt-4.8/qthelpproject.html#filter-attributes).
# This tag requires that the tag GENERATE_QHP is set to YES.
QHP_SECT_FILTER_ATTRS =
@@ -1450,7 +1506,7 @@ EXT_LINKS_IN_WINDOW = NO
FORMULA_FONTSIZE = 10
-# Use the FORMULA_TRANPARENT tag to determine whether or not the images
+# Use the FORMULA_TRANSPARENT tag to determine whether or not the images
# generated for formulas are transparent PNGs. Transparent PNGs are not
# supported properly for IE 6.0, but are supported on all modern browsers.
#
@@ -1462,7 +1518,7 @@ FORMULA_FONTSIZE = 10
FORMULA_TRANSPARENT = YES
# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
-# http://www.mathjax.org) which uses client side Javascript for the rendering
+# https://www.mathjax.org) which uses client side Javascript for the rendering
# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX
# installed or if you want to formulas look prettier in the HTML output. When
# enabled you may also need to install MathJax separately and configure the path
@@ -1489,8 +1545,8 @@ MATHJAX_FORMAT = HTML-CSS
# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
# Content Delivery Network so you can quickly see the result without installing
# MathJax. However, it is strongly recommended to install a local copy of
-# MathJax from http://www.mathjax.org before deployment.
-# The default value is: http://cdn.mathjax.org/mathjax/latest.
+# MathJax from https://www.mathjax.org before deployment.
+# The default value is: https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/.
# This tag requires that the tag USE_MATHJAX is set to YES.
MATHJAX_RELPATH = http://www.mathjax.org/mathjax
@@ -1551,7 +1607,7 @@ SERVER_BASED_SEARCH = NO
#
# Doxygen ships with an example indexer (doxyindexer) and search engine
# (doxysearch.cgi) which are based on the open source search engine library
-# Xapian (see: http://xapian.org/).
+# Xapian (see: https://xapian.org/).
#
# See the section "External Indexing and Searching" for details.
# The default value is: NO.
@@ -1564,7 +1620,7 @@ EXTERNAL_SEARCH = NO
#
# Doxygen ships with an example indexer (doxyindexer) and search engine
# (doxysearch.cgi) which are based on the open source search engine library
-# Xapian (see: http://xapian.org/). See the section "External Indexing and
+# Xapian (see: https://xapian.org/). See the section "External Indexing and
# Searching" for details.
# This tag requires that the tag SEARCHENGINE is set to YES.
@@ -1649,9 +1705,12 @@ COMPACT_LATEX = NO
PAPER_TYPE = letter
# The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
-# that should be included in the LaTeX output. To get the times font for
-# instance you can specify
-# EXTRA_PACKAGES=times
+# that should be included in the LaTeX output. The package can be specified just
+# by its name or with the correct syntax as to be used with the LaTeX
+# \usepackage command. To get the times font for instance you can specify :
+# EXTRA_PACKAGES=times or EXTRA_PACKAGES={times}
+# To use the option intlimits with the amsmath package you can specify:
+# EXTRA_PACKAGES=[intlimits]{amsmath}
# If left blank no extra packages will be included.
# This tag requires that the tag GENERATE_LATEX is set to YES.
@@ -1748,12 +1807,20 @@ LATEX_SOURCE_CODE = NO
# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
# bibliography, e.g. plainnat, or ieeetr. See
-# http://en.wikipedia.org/wiki/BibTeX and \cite for more info.
+# https://en.wikipedia.org/wiki/BibTeX and \cite for more info.
# The default value is: plain.
# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_BIB_STYLE = plain
+# If the LATEX_TIMESTAMP tag is set to YES then the footer of each generated
+# page will contain the date and time when the page was generated. Setting this
+# to NO can help when comparing the output of multiple runs.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_TIMESTAMP = NO
+
#---------------------------------------------------------------------------
# Configuration options related to the RTF output
#---------------------------------------------------------------------------
@@ -1923,9 +1990,9 @@ DOCBOOK_PROGRAMLISTING = NO
#---------------------------------------------------------------------------
# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an
-# AutoGen Definitions (see http://autogen.sf.net) file that captures the
-# structure of the code including all documentation. Note that this feature is
-# still experimental and incomplete at the moment.
+# AutoGen Definitions (see http://autogen.sourceforge.net/) file that captures
+# the structure of the code including all documentation. Note that this feature
+# is still experimental and incomplete at the moment.
# The default value is: NO.
GENERATE_AUTOGEN_DEF = NO
@@ -2025,8 +2092,15 @@ INCLUDE_FILE_PATTERNS =
# recursively expanded use the := operator instead of the = operator.
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-PREDEFINED = "NS_ENUM(_type,_name):=enum _name : _type _name; enum _name : _type" \
- "NS_OPTIONS(_type,_name):=enum _name : _type _name; enum _name : _type"
+PREDEFINED = "NS_DESIGNATED_INITIALIZER:= " \
+ "NS_RETURNS_INNER_POINTER:= " \
+ "NS_ENUM(_type,_name):=enum _name : _type _name; enum _name : _type " \
+ "NS_CLOSED_ENUM(_type,_name):=enum _name : _type _name; enum _name : _type " \
+ "NS_OPTIONS(_type,_name):=enum _name : _type _name; enum _name : _type " \
+ "NS_SWIFT_NAME(_name):= " \
+ "cpt_deprecated:= " \
+ "cpt_swift_enum:= " \
+ "cpt_swift_struct:= "
# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
# tag can be used to specify a list of macro names that should be expanded. The
@@ -2253,7 +2327,8 @@ INCLUDED_BY_GRAPH = YES
#
# Note that enabling this option will significantly increase the time of a run.
# So in most cases it will be better to enable call graphs for selected
-# functions only using the \callgraph command.
+# functions only using the \callgraph command. Disabling a call graph can be
+# accomplished by means of the command \hidecallgraph.
# The default value is: NO.
# This tag requires that the tag HAVE_DOT is set to YES.
@@ -2264,7 +2339,8 @@ CALL_GRAPH = NO
#
# Note that enabling this option will significantly increase the time of a run.
# So in most cases it will be better to enable caller graphs for selected
-# functions only using the \callergraph command.
+# functions only using the \callergraph command. Disabling a caller graph can be
+# accomplished by means of the command \hidecallergraph.
# The default value is: NO.
# This tag requires that the tag HAVE_DOT is set to YES.
@@ -2287,11 +2363,15 @@ GRAPHICAL_HIERARCHY = YES
DIRECTORY_GRAPH = YES
# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
-# generated by dot.
+# generated by dot. For an explanation of the image formats see the section
+# output formats in the documentation of the dot tool (Graphviz (see:
+# http://www.graphviz.org/)).
# Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
# to make the SVG files visible in IE 9+ (other browsers do not have this
# requirement).
-# Possible values are: png, jpg, gif and svg.
+# Possible values are: png, jpg, gif, svg, png:gd, png:gd:gd, png:cairo,
+# png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and
+# png:gdiplus:gdiplus.
# The default value is: png.
# This tag requires that the tag HAVE_DOT is set to YES.
@@ -2342,6 +2422,11 @@ DIAFILE_DIRS =
PLANTUML_JAR_PATH =
+# When using plantuml, the PLANTUML_CFG_FILE tag can be used to specify a
+# configuration file for plantuml.
+
+PLANTUML_CFG_FILE =
+
# When using plantuml, the specified paths are searched for files specified by
# the !include statement in a plantuml block.
diff --git a/examples/AAPLot/AAPL.plist b/examples/AAPLot/AAPL.plist
deleted file mode 100644
index 482c91dc4..000000000
--- a/examples/AAPLot/AAPL.plist
+++ /dev/null
@@ -1,963 +0,0 @@
-
-
-
-
- endDate
- 2009-06-19T02:55:22Z
- financialData
-
-
- adjClose
- 144.67
- close
- 144.67
- date
- 2009-06-05T04:00:00Z
- high
- 146.4
- low
- 143.21
- open
- 145.31
- volume
- 22585700
-
-
- adjClose
- 143.74
- close
- 143.74
- date
- 2009-06-04T04:00:00Z
- high
- 144.18
- low
- 140.04
- open
- 140.13
- volume
- 19537200
-
-
- adjClose
- 140.95
- close
- 140.95
- date
- 2009-06-03T04:00:00Z
- high
- 141.11
- low
- 139.07
- open
- 140
- volume
- 20171800
-
-
- adjClose
- 139.49
- close
- 139.49
- date
- 2009-06-02T04:00:00Z
- high
- 141.34
- low
- 138.35
- open
- 138.99
- volume
- 16199500
-
-
- adjClose
- 139.35
- close
- 139.35
- date
- 2009-06-01T04:00:00Z
- high
- 139.99
- low
- 136
- open
- 136.47
- volume
- 16160700
-
-
- adjClose
- 135.81
- close
- 135.81
- date
- 2009-05-29T04:00:00Z
- high
- 135.9
- low
- 133.85
- open
- 135.39
- volume
- 16304800
-
-
- adjClose
- 135.07
- close
- 135.07
- date
- 2009-05-28T04:00:00Z
- high
- 135.39
- low
- 132.03
- open
- 133.45
- volume
- 17397200
-
-
- adjClose
- 133.05
- close
- 133.05
- date
- 2009-05-27T04:00:00Z
- high
- 134.98
- low
- 130.91
- open
- 131.78
- volume
- 23086500
-
-
- adjClose
- 130.78
- close
- 130.78
- date
- 2009-05-26T04:00:00Z
- high
- 130.83
- low
- 124.55
- open
- 124.76
- volume
- 22692300
-
-
- adjClose
- 122.5
- close
- 122.5
- date
- 2009-05-22T04:00:00Z
- high
- 124.18
- low
- 121.75
- open
- 124.05
- volume
- 10642800
-
-
- adjClose
- 124.18
- close
- 124.18
- date
- 2009-05-21T04:00:00Z
- high
- 126.78
- low
- 122.89
- open
- 125.15
- volume
- 14569500
-
-
- adjClose
- 125.87
- close
- 125.87
- date
- 2009-05-20T04:00:00Z
- high
- 129.21
- low
- 125.3
- open
- 127.63
- volume
- 13878000
-
-
- adjClose
- 127.45
- close
- 127.45
- date
- 2009-05-19T04:00:00Z
- high
- 129.31
- low
- 125.74
- open
- 126.82
- volume
- 13300800
-
-
- adjClose
- 126.65
- close
- 126.65
- date
- 2009-05-18T04:00:00Z
- high
- 126.7
- low
- 121.57
- open
- 123.73
- volume
- 16387200
-
-
- adjClose
- 122.42
- close
- 122.42
- date
- 2009-05-15T04:00:00Z
- high
- 124.62
- low
- 121.61
- open
- 122.32
- volume
- 13127400
-
-
- adjClose
- 122.95
- close
- 122.95
- date
- 2009-05-14T04:00:00Z
- high
- 123.53
- low
- 119.7
- open
- 119.78
- volume
- 15993800
-
-
- adjClose
- 119.49
- close
- 119.49
- date
- 2009-05-13T04:00:00Z
- high
- 124.02
- low
- 119.38
- open
- 123.21
- volume
- 21284700
-
-
- adjClose
- 124.42
- close
- 124.42
- date
- 2009-05-12T04:00:00Z
- high
- 129.71
- low
- 123.25
- open
- 129.56
- volume
- 21767200
-
-
- adjClose
- 129.57
- close
- 129.57
- date
- 2009-05-11T04:00:00Z
- high
- 130.96
- low
- 127.12
- open
- 127.37
- volume
- 14452100
-
-
- adjClose
- 129.19
- close
- 129.19
- date
- 2009-05-08T04:00:00Z
- high
- 131.23
- low
- 126.26
- open
- 129.04
- volume
- 16713000
-
-
- adjClose
- 129.06
- close
- 129.06
- date
- 2009-05-07T04:00:00Z
- high
- 132.39
- low
- 127.9
- open
- 132.33
- volume
- 18992000
-
-
- adjClose
- 132.5
- close
- 132.5
- date
- 2009-05-06T04:00:00Z
- high
- 133.5
- low
- 130.22
- open
- 133.33
- volume
- 16912100
-
-
- adjClose
- 132.71
- close
- 132.71
- date
- 2009-05-05T04:00:00Z
- high
- 132.86
- low
- 131.12
- open
- 131.75
- volume
- 14223400
-
-
- adjClose
- 132.07
- close
- 132.07
- date
- 2009-05-04T04:00:00Z
- high
- 132.25
- low
- 127.68
- open
- 128.24
- volume
- 21762800
-
-
- adjClose
- 127.24
- close
- 127.24
- date
- 2009-05-01T04:00:00Z
- high
- 127.95
- low
- 125.8
- open
- 125.8
- volume
- 14197000
-
-
- adjClose
- 125.83
- close
- 125.83
- date
- 2009-04-30T04:00:00Z
- high
- 127
- low
- 124.92
- open
- 126.22
- volume
- 17803200
-
-
- adjClose
- 125.14
- close
- 125.14
- date
- 2009-04-29T04:00:00Z
- high
- 126.85
- low
- 123.83
- open
- 124.85
- volume
- 16361100
-
-
- adjClose
- 123.9
- close
- 123.9
- date
- 2009-04-28T04:00:00Z
- high
- 126.21
- low
- 123.26
- open
- 123.35
- volume
- 16280600
-
-
- adjClose
- 124.73
- close
- 124.73
- date
- 2009-04-27T04:00:00Z
- high
- 125
- low
- 122.66
- open
- 122.9
- volume
- 17167500
-
-
- adjClose
- 123.9
- close
- 123.9
- date
- 2009-04-24T04:00:00Z
- high
- 125.14
- low
- 122.97
- open
- 124.64
- volume
- 19313000
-
-
- adjClose
- 125.4
- close
- 125.4
- date
- 2009-04-23T04:00:00Z
- high
- 127.2
- low
- 123.51
- open
- 126.62
- volume
- 33755600
-
-
- adjClose
- 121.51
- close
- 121.51
- date
- 2009-04-22T04:00:00Z
- high
- 125.35
- low
- 121.2
- open
- 122.63
- volume
- 33527400
-
-
- adjClose
- 121.76
- close
- 121.76
- date
- 2009-04-21T04:00:00Z
- high
- 122.14
- low
- 118.6
- open
- 118.89
- volume
- 16810200
-
-
- adjClose
- 120.5
- close
- 120.5
- date
- 2009-04-20T04:00:00Z
- high
- 122.99
- low
- 119.16
- open
- 121.73
- volume
- 16659500
-
-
- adjClose
- 123.42
- close
- 123.42
- date
- 2009-04-17T04:00:00Z
- high
- 124.25
- low
- 120.25
- open
- 121.18
- volume
- 17767700
-
-
- adjClose
- 121.45
- close
- 121.45
- date
- 2009-04-16T04:00:00Z
- high
- 123.15
- low
- 118.79
- open
- 119.19
- volume
- 21194500
-
-
- adjClose
- 117.64
- close
- 117.64
- date
- 2009-04-15T04:00:00Z
- high
- 118.25
- low
- 115.76
- open
- 117.2
- volume
- 14745800
-
-
- adjClose
- 118.31
- close
- 118.31
- date
- 2009-04-14T04:00:00Z
- high
- 120.17
- low
- 117.25
- open
- 119.57
- volume
- 16236500
-
-
- adjClose
- 120.22
- close
- 120.22
- date
- 2009-04-13T04:00:00Z
- high
- 120.98
- low
- 119
- open
- 120.01
- volume
- 13901300
-
-
- adjClose
- 119.57
- close
- 119.57
- date
- 2009-04-09T04:00:00Z
- high
- 120
- low
- 117.96
- open
- 118.42
- volume
- 18955600
-
-
- adjClose
- 116.32
- close
- 116.32
- date
- 2009-04-08T04:00:00Z
- high
- 116.79
- low
- 114.58
- open
- 115.43
- volume
- 16272500
-
-
- adjClose
- 115
- close
- 115
- date
- 2009-04-07T04:00:00Z
- high
- 116.67
- low
- 114.19
- open
- 116.53
- volume
- 19163600
-
-
- adjClose
- 118.45
- close
- 118.45
- date
- 2009-04-06T04:00:00Z
- high
- 118.75
- low
- 113.28
- open
- 114.94
- volume
- 23502300
-
-
- adjClose
- 115.99
- close
- 115.99
- date
- 2009-04-03T04:00:00Z
- high
- 116.13
- low
- 113.52
- open
- 114.19
- volume
- 22722900
-
-
- adjClose
- 112.71
- close
- 112.71
- date
- 2009-04-02T04:00:00Z
- high
- 114.75
- low
- 109.78
- open
- 110.14
- volume
- 29013100
-
-
- adjClose
- 108.69
- close
- 108.69
- date
- 2009-04-01T04:00:00Z
- high
- 109
- low
- 103.89
- open
- 104.09
- volume
- 21049000
-
-
- adjClose
- 105.12
- close
- 105.12
- date
- 2009-03-31T04:00:00Z
- high
- 107.45
- low
- 105
- open
- 105.45
- volume
- 20338500
-
-
- adjClose
- 104.49
- close
- 104.49
- date
- 2009-03-30T04:00:00Z
- high
- 105.01
- low
- 102.61
- open
- 104.51
- volume
- 17957000
-
-
- adjClose
- 106.85
- close
- 106.85
- date
- 2009-03-27T04:00:00Z
- high
- 108.53
- low
- 106.4
- open
- 108.23
- volume
- 17602600
-
-
- adjClose
- 109.87
- close
- 109.87
- date
- 2009-03-26T04:00:00Z
- high
- 109.98
- low
- 107.58
- open
- 107.83
- volume
- 22009000
-
-
- adjClose
- 106.49
- close
- 106.49
- date
- 2009-03-25T04:00:00Z
- high
- 108.36
- low
- 103.86
- open
- 107.58
- volume
- 23093500
-
-
- adjClose
- 106.5
- close
- 106.5
- date
- 2009-03-24T04:00:00Z
- high
- 109.44
- low
- 105.39
- open
- 106.36
- volume
- 22879000
-
-
- adjClose
- 107.66
- close
- 107.66
- date
- 2009-03-23T04:00:00Z
- high
- 108.16
- low
- 101.75
- open
- 102.71
- volume
- 23799900
-
-
- adjClose
- 101.59
- close
- 101.59
- date
- 2009-03-20T04:00:00Z
- high
- 103.11
- low
- 100.57
- open
- 102.09
- volume
- 24842400
-
-
- adjClose
- 101.62
- close
- 101.62
- date
- 2009-03-19T04:00:00Z
- high
- 103.2
- low
- 100.25
- open
- 101.85
- volume
- 17863600
-
-
- adjClose
- 101.52
- close
- 101.52
- date
- 2009-03-18T04:00:00Z
- high
- 103.48
- low
- 99.72
- open
- 99.91
- volume
- 28429900
-
-
- adjClose
- 99.66
- close
- 99.66
- date
- 2009-03-17T04:00:00Z
- high
- 99.69
- low
- 95.07000000000001
- open
- 95.23999999999999
- volume
- 28094500
-
-
- adjClose
- 95.42
- close
- 95.42
- date
- 2009-03-16T04:00:00Z
- high
- 97.39
- low
- 94.17999999999999
- open
- 96.53
- volume
- 28473000
-
-
- adjClose
- 95.92999999999999
- close
- 95.92999999999999
- date
- 2009-03-13T04:00:00Z
- high
- 97.2
- low
- 95.01000000000001
- open
- 96.3
- volume
- 21470300
-
-
- overallHigh
- 146.4
- overallLow
- 94.17999999999999
- startDate
- 2009-03-27T02:55:22Z
- symbol
- AAPL
-
-
diff --git a/examples/AAPLot/AAPLot.png b/examples/AAPLot/AAPLot.png
deleted file mode 100644
index c218d2598..000000000
Binary files a/examples/AAPLot/AAPLot.png and /dev/null differ
diff --git a/examples/AAPLot/AAPLot.xcodeproj/project.pbxproj b/examples/AAPLot/AAPLot.xcodeproj/project.pbxproj
deleted file mode 100644
index 4ee5307e5..000000000
--- a/examples/AAPLot/AAPLot.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,438 +0,0 @@
-// !$*UTF8*$!
-{
- archiveVersion = 1;
- classes = {
- };
- objectVersion = 46;
- objects = {
-
-/* Begin PBXBuildFile section */
- 073703570FE5193C006D46AD /* APFinancialData.m in Sources */ = {isa = PBXBuildFile; fileRef = 073703560FE5193C006D46AD /* APFinancialData.m */; };
- 073703B10FE51E6C006D46AD /* NSDateFormatterExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 073703B00FE51E6C006D46AD /* NSDateFormatterExtensions.m */; };
- 1D3623260D0F684500981E51 /* AAPLotAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D3623250D0F684500981E51 /* AAPLotAppDelegate.m */; };
- 1D60589B0D05DD56006BFB54 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; };
- 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; };
- 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; };
- 280E754D0DD40C5E005A515E /* FlipsideView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 280E754A0DD40C5E005A515E /* FlipsideView.xib */; };
- 280E754E0DD40C5E005A515E /* MainView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 280E754B0DD40C5E005A515E /* MainView.xib */; };
- 280E754F0DD40C5E005A515E /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 280E754C0DD40C5E005A515E /* MainWindow.xib */; };
- 288765590DF743DE002DB57D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765580DF743DE002DB57D /* CoreGraphics.framework */; };
- 289233A60DB2D0840083E9F9 /* FlipsideView.m in Sources */ = {isa = PBXBuildFile; fileRef = 289233A30DB2D0840083E9F9 /* FlipsideView.m */; };
- 289233AE0DB2D0DB0083E9F9 /* MainViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 289233A90DB2D0DB0083E9F9 /* MainViewController.m */; };
- 289233AF0DB2D0DB0083E9F9 /* RootViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 289233AB0DB2D0DB0083E9F9 /* RootViewController.m */; };
- 289233B00DB2D0DB0083E9F9 /* FlipsideViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 289233AD0DB2D0DB0083E9F9 /* FlipsideViewController.m */; };
- AB8989470FE0309E00FDC37F /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB8989460FE0309E00FDC37F /* QuartzCore.framework */; };
- AB8F944A0FDEF5DC00E61485 /* libCorePlot-CocoaTouch.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AB8F94490FDEF56700E61485 /* libCorePlot-CocoaTouch.a */; };
- AB8F94580FDEFA1500E61485 /* APYahooDataPuller.m in Sources */ = {isa = PBXBuildFile; fileRef = AB8F94570FDEFA1500E61485 /* APYahooDataPuller.m */; };
- ABA5345E0FEB40CE0046A8DA /* AAPL.plist in Resources */ = {isa = PBXBuildFile; fileRef = ABA5345D0FEB40CE0046A8DA /* AAPL.plist */; };
- C3CD283017DE9B9C008EED1E /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C3CD282F17DE9B9C008EED1E /* Accelerate.framework */; };
- C3D3936C19FD6B1D00148319 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C3D3936B19FD6B1D00148319 /* Images.xcassets */; };
- C3F0BA3919EC9F6300F7CB47 /* Launch Screen.xib in Resources */ = {isa = PBXBuildFile; fileRef = C3F0BA3819EC9F6300F7CB47 /* Launch Screen.xib */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXContainerItemProxy section */
- AB8F94480FDEF56700E61485 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = AB8F94440FDEF56700E61485 /* CorePlot-CocoaTouch.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = BC9B83470FB8A0A40035D8DA;
- remoteInfo = "CorePlot-CocoaTouch";
- };
- AB8F944B0FDEF5E000E61485 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = AB8F94440FDEF56700E61485 /* CorePlot-CocoaTouch.xcodeproj */;
- proxyType = 1;
- remoteGlobalIDString = BC9B83460FB8A0A40035D8DA;
- remoteInfo = "CorePlot-CocoaTouch";
- };
-/* End PBXContainerItemProxy section */
-
-/* Begin PBXFileReference section */
- 073703550FE5193C006D46AD /* APFinancialData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APFinancialData.h; sourceTree = ""; };
- 073703560FE5193C006D46AD /* APFinancialData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APFinancialData.m; sourceTree = ""; };
- 073703AF0FE51E6C006D46AD /* NSDateFormatterExtensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSDateFormatterExtensions.h; sourceTree = ""; };
- 073703B00FE51E6C006D46AD /* NSDateFormatterExtensions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSDateFormatterExtensions.m; sourceTree = ""; };
- 1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
- 1D3623240D0F684500981E51 /* AAPLotAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AAPLotAppDelegate.h; sourceTree = ""; };
- 1D3623250D0F684500981E51 /* AAPLotAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AAPLotAppDelegate.m; sourceTree = ""; };
- 1D6058910D05DD3D006BFB54 /* AAPLot.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = AAPLot.app; sourceTree = BUILT_PRODUCTS_DIR; };
- 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
- 280E754A0DD40C5E005A515E /* FlipsideView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = FlipsideView.xib; sourceTree = ""; };
- 280E754B0DD40C5E005A515E /* MainView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MainView.xib; sourceTree = ""; };
- 280E754C0DD40C5E005A515E /* MainWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = MainWindow.xib; path = ../MainWindow.xib; sourceTree = ""; };
- 288765580DF743DE002DB57D /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
- 289233A20DB2D0840083E9F9 /* FlipsideView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FlipsideView.h; path = Classes/FlipsideView.h; sourceTree = ""; };
- 289233A30DB2D0840083E9F9 /* FlipsideView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = FlipsideView.m; path = Classes/FlipsideView.m; sourceTree = ""; };
- 289233A80DB2D0DB0083E9F9 /* MainViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MainViewController.h; path = Classes/MainViewController.h; sourceTree = ""; };
- 289233A90DB2D0DB0083E9F9 /* MainViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MainViewController.m; path = Classes/MainViewController.m; sourceTree = ""; };
- 289233AA0DB2D0DB0083E9F9 /* RootViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RootViewController.h; sourceTree = ""; };
- 289233AB0DB2D0DB0083E9F9 /* RootViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RootViewController.m; sourceTree = ""; };
- 289233AC0DB2D0DB0083E9F9 /* FlipsideViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FlipsideViewController.h; path = Classes/FlipsideViewController.h; sourceTree = ""; };
- 289233AD0DB2D0DB0083E9F9 /* FlipsideViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = FlipsideViewController.m; path = Classes/FlipsideViewController.m; sourceTree = ""; };
- 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; };
- 32CA4F630368D1EE00C91783 /* AAPLot_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AAPLot_Prefix.pch; sourceTree = ""; };
- 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
- AB8989460FE0309E00FDC37F /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
- AB8F94440FDEF56700E61485 /* CorePlot-CocoaTouch.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "CorePlot-CocoaTouch.xcodeproj"; path = "../../framework/CorePlot-CocoaTouch.xcodeproj"; sourceTree = SOURCE_ROOT; };
- AB8F94560FDEFA1500E61485 /* APYahooDataPuller.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APYahooDataPuller.h; sourceTree = ""; };
- AB8F94570FDEFA1500E61485 /* APYahooDataPuller.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APYahooDataPuller.m; sourceTree = ""; };
- ABA5345D0FEB40CE0046A8DA /* AAPL.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = AAPL.plist; sourceTree = ""; };
- C3CA9B5819E1F79B008DF7A3 /* CorePlotWarnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = CorePlotWarnings.xcconfig; path = ../../framework/CorePlotWarnings.xcconfig; sourceTree = ""; };
- C3CD282F17DE9B9C008EED1E /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; };
- C3D3936B19FD6B1D00148319 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = AAPLot/Images.xcassets; sourceTree = ""; };
- C3F0BA3819EC9F6300F7CB47 /* Launch Screen.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = "Launch Screen.xib"; sourceTree = ""; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
- 1D60588F0D05DD3D006BFB54 /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */,
- 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */,
- 288765590DF743DE002DB57D /* CoreGraphics.framework in Frameworks */,
- AB8F944A0FDEF5DC00E61485 /* libCorePlot-CocoaTouch.a in Frameworks */,
- AB8989470FE0309E00FDC37F /* QuartzCore.framework in Frameworks */,
- C3CD283017DE9B9C008EED1E /* Accelerate.framework in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
- 0737034D0FE518E7006D46AD /* Data Acquisition */ = {
- isa = PBXGroup;
- children = (
- AB8F94560FDEFA1500E61485 /* APYahooDataPuller.h */,
- AB8F94570FDEFA1500E61485 /* APYahooDataPuller.m */,
- 073703550FE5193C006D46AD /* APFinancialData.h */,
- 073703560FE5193C006D46AD /* APFinancialData.m */,
- 073703AF0FE51E6C006D46AD /* NSDateFormatterExtensions.h */,
- 073703B00FE51E6C006D46AD /* NSDateFormatterExtensions.m */,
- );
- name = "Data Acquisition";
- sourceTree = "";
- };
- 080E96DDFE201D6D7F000001 /* Application Controllers */ = {
- isa = PBXGroup;
- children = (
- 280E754C0DD40C5E005A515E /* MainWindow.xib */,
- 1D3623240D0F684500981E51 /* AAPLotAppDelegate.h */,
- 1D3623250D0F684500981E51 /* AAPLotAppDelegate.m */,
- 289233AA0DB2D0DB0083E9F9 /* RootViewController.h */,
- 289233AB0DB2D0DB0083E9F9 /* RootViewController.m */,
- );
- name = "Application Controllers";
- path = Classes;
- sourceTree = "";
- };
- 19C28FACFE9D520D11CA2CBB /* Products */ = {
- isa = PBXGroup;
- children = (
- 1D6058910D05DD3D006BFB54 /* AAPLot.app */,
- );
- name = Products;
- sourceTree = "";
- };
- 281C6CD70DB2D82200F60ACC /* Flipside View */ = {
- isa = PBXGroup;
- children = (
- 280E754A0DD40C5E005A515E /* FlipsideView.xib */,
- 289233A20DB2D0840083E9F9 /* FlipsideView.h */,
- 289233A30DB2D0840083E9F9 /* FlipsideView.m */,
- 289233AC0DB2D0DB0083E9F9 /* FlipsideViewController.h */,
- 289233AD0DB2D0DB0083E9F9 /* FlipsideViewController.m */,
- );
- name = "Flipside View";
- sourceTree = "";
- };
- 289233A00DB2D0730083E9F9 /* Main View */ = {
- isa = PBXGroup;
- children = (
- 280E754B0DD40C5E005A515E /* MainView.xib */,
- 289233A80DB2D0DB0083E9F9 /* MainViewController.h */,
- 289233A90DB2D0DB0083E9F9 /* MainViewController.m */,
- C3F0BA3819EC9F6300F7CB47 /* Launch Screen.xib */,
- );
- name = "Main View";
- sourceTree = "";
- };
- 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = {
- isa = PBXGroup;
- children = (
- AB8F94440FDEF56700E61485 /* CorePlot-CocoaTouch.xcodeproj */,
- 289233A00DB2D0730083E9F9 /* Main View */,
- 0737034D0FE518E7006D46AD /* Data Acquisition */,
- 281C6CD70DB2D82200F60ACC /* Flipside View */,
- 080E96DDFE201D6D7F000001 /* Application Controllers */,
- 29B97315FDCFA39411CA2CEA /* Other Sources */,
- 29B97317FDCFA39411CA2CEA /* Resources */,
- 29B97323FDCFA39411CA2CEA /* Frameworks */,
- 19C28FACFE9D520D11CA2CBB /* Products */,
- );
- indentWidth = 4;
- name = CustomTemplate;
- sourceTree = "";
- tabWidth = 4;
- usesTabs = 0;
- };
- 29B97315FDCFA39411CA2CEA /* Other Sources */ = {
- isa = PBXGroup;
- children = (
- 32CA4F630368D1EE00C91783 /* AAPLot_Prefix.pch */,
- 29B97316FDCFA39411CA2CEA /* main.m */,
- C3CA9B5819E1F79B008DF7A3 /* CorePlotWarnings.xcconfig */,
- );
- name = "Other Sources";
- sourceTree = "";
- };
- 29B97317FDCFA39411CA2CEA /* Resources */ = {
- isa = PBXGroup;
- children = (
- C3D3936B19FD6B1D00148319 /* Images.xcassets */,
- ABA5345D0FEB40CE0046A8DA /* AAPL.plist */,
- 8D1107310486CEB800E47090 /* Info.plist */,
- );
- name = Resources;
- sourceTree = "";
- };
- 29B97323FDCFA39411CA2CEA /* Frameworks */ = {
- isa = PBXGroup;
- children = (
- AB8989460FE0309E00FDC37F /* QuartzCore.framework */,
- 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */,
- 1D30AB110D05D00D00671497 /* Foundation.framework */,
- 288765580DF743DE002DB57D /* CoreGraphics.framework */,
- C3CD282F17DE9B9C008EED1E /* Accelerate.framework */,
- );
- name = Frameworks;
- sourceTree = "";
- };
- AB8F94450FDEF56700E61485 /* Products */ = {
- isa = PBXGroup;
- children = (
- AB8F94490FDEF56700E61485 /* libCorePlot-CocoaTouch.a */,
- );
- name = Products;
- sourceTree = "";
- };
-/* End PBXGroup section */
-
-/* Begin PBXNativeTarget section */
- 1D6058900D05DD3D006BFB54 /* AAPLot */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "AAPLot" */;
- buildPhases = (
- 1D60588D0D05DD3D006BFB54 /* Resources */,
- 1D60588E0D05DD3D006BFB54 /* Sources */,
- 1D60588F0D05DD3D006BFB54 /* Frameworks */,
- );
- buildRules = (
- );
- dependencies = (
- AB8F944C0FDEF5E000E61485 /* PBXTargetDependency */,
- );
- name = AAPLot;
- productName = AAPLot;
- productReference = 1D6058910D05DD3D006BFB54 /* AAPLot.app */;
- productType = "com.apple.product-type.application";
- };
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
- 29B97313FDCFA39411CA2CEA /* Project object */ = {
- isa = PBXProject;
- attributes = {
- LastUpgradeCheck = 0700;
- TargetAttributes = {
- 1D6058900D05DD3D006BFB54 = {
- DevelopmentTeam = 28ZA45DE7D;
- };
- };
- };
- buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "AAPLot" */;
- compatibilityVersion = "Xcode 3.2";
- developmentRegion = English;
- hasScannedForEncodings = 1;
- knownRegions = (
- English,
- Japanese,
- French,
- German,
- en,
- );
- mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */;
- projectDirPath = "";
- projectReferences = (
- {
- ProductGroup = AB8F94450FDEF56700E61485 /* Products */;
- ProjectRef = AB8F94440FDEF56700E61485 /* CorePlot-CocoaTouch.xcodeproj */;
- },
- );
- projectRoot = "";
- targets = (
- 1D6058900D05DD3D006BFB54 /* AAPLot */,
- );
- };
-/* End PBXProject section */
-
-/* Begin PBXReferenceProxy section */
- AB8F94490FDEF56700E61485 /* libCorePlot-CocoaTouch.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = "libCorePlot-CocoaTouch.a";
- remoteRef = AB8F94480FDEF56700E61485 /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
-/* End PBXReferenceProxy section */
-
-/* Begin PBXResourcesBuildPhase section */
- 1D60588D0D05DD3D006BFB54 /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 280E754D0DD40C5E005A515E /* FlipsideView.xib in Resources */,
- 280E754E0DD40C5E005A515E /* MainView.xib in Resources */,
- C3D3936C19FD6B1D00148319 /* Images.xcassets in Resources */,
- 280E754F0DD40C5E005A515E /* MainWindow.xib in Resources */,
- ABA5345E0FEB40CE0046A8DA /* AAPL.plist in Resources */,
- C3F0BA3919EC9F6300F7CB47 /* Launch Screen.xib in Resources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXResourcesBuildPhase section */
-
-/* Begin PBXSourcesBuildPhase section */
- 1D60588E0D05DD3D006BFB54 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 1D60589B0D05DD56006BFB54 /* main.m in Sources */,
- 1D3623260D0F684500981E51 /* AAPLotAppDelegate.m in Sources */,
- 289233A60DB2D0840083E9F9 /* FlipsideView.m in Sources */,
- 289233AE0DB2D0DB0083E9F9 /* MainViewController.m in Sources */,
- 289233AF0DB2D0DB0083E9F9 /* RootViewController.m in Sources */,
- 289233B00DB2D0DB0083E9F9 /* FlipsideViewController.m in Sources */,
- AB8F94580FDEFA1500E61485 /* APYahooDataPuller.m in Sources */,
- 073703570FE5193C006D46AD /* APFinancialData.m in Sources */,
- 073703B10FE51E6C006D46AD /* NSDateFormatterExtensions.m in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXSourcesBuildPhase section */
-
-/* Begin PBXTargetDependency section */
- AB8F944C0FDEF5E000E61485 /* PBXTargetDependency */ = {
- isa = PBXTargetDependency;
- name = "CorePlot-CocoaTouch";
- targetProxy = AB8F944B0FDEF5E000E61485 /* PBXContainerItemProxy */;
- };
-/* End PBXTargetDependency section */
-
-/* Begin XCBuildConfiguration section */
- 1D6058940D05DD3E006BFB54 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
- CLANG_ENABLE_OBJC_ARC = YES;
- CODE_SIGN_IDENTITY = "iPhone Developer";
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- COPY_PHASE_STRIP = NO;
- GCC_DYNAMIC_NO_PIC = NO;
- GCC_OPTIMIZATION_LEVEL = 0;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = AAPLot_Prefix.pch;
- HEADER_SEARCH_PATHS = "";
- INFOPLIST_FILE = Info.plist;
- OTHER_LDFLAGS = (
- "-ObjC",
- "-all_load",
- );
- PRODUCT_BUNDLE_IDENTIFIER = "org.CorePlot.${PRODUCT_NAME:identifier}";
- PRODUCT_NAME = AAPLot;
- };
- name = Debug;
- };
- 1D6058950D05DD3E006BFB54 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
- CLANG_ENABLE_OBJC_ARC = YES;
- CODE_SIGN_IDENTITY = "iPhone Distribution";
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
- COPY_PHASE_STRIP = YES;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = AAPLot_Prefix.pch;
- HEADER_SEARCH_PATHS = "";
- INFOPLIST_FILE = Info.plist;
- OTHER_LDFLAGS = (
- "-ObjC",
- "-all_load",
- );
- PRODUCT_BUNDLE_IDENTIFIER = "org.CorePlot.${PRODUCT_NAME:identifier}";
- PRODUCT_NAME = AAPLot;
- };
- name = Release;
- };
- C01FCF4F08A954540054247B /* Debug */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = C3CA9B5819E1F79B008DF7A3 /* CorePlotWarnings.xcconfig */;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- ENABLE_TESTABILITY = YES;
- GCC_C_LANGUAGE_STANDARD = c99;
- GCC_WARN_ABOUT_RETURN_TYPE = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- HEADER_SEARCH_PATHS = "";
- IPHONEOS_DEPLOYMENT_TARGET = 6.0;
- ONLY_ACTIVE_ARCH = YES;
- SDKROOT = iphoneos;
- SYMROOT = "$(SRCROOT)/../../build";
- USER_HEADER_SEARCH_PATHS = "\"${PROJECT_DIR}/../../framework\"/**";
- };
- name = Debug;
- };
- C01FCF5008A954540054247B /* Release */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = C3CA9B5819E1F79B008DF7A3 /* CorePlotWarnings.xcconfig */;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- GCC_C_LANGUAGE_STANDARD = c99;
- GCC_WARN_ABOUT_RETURN_TYPE = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- HEADER_SEARCH_PATHS = "";
- IPHONEOS_DEPLOYMENT_TARGET = 6.0;
- SDKROOT = iphoneos;
- USER_HEADER_SEARCH_PATHS = "\"${PROJECT_DIR}/../../framework\"/**";
- };
- name = Release;
- };
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
- 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "AAPLot" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 1D6058940D05DD3E006BFB54 /* Debug */,
- 1D6058950D05DD3E006BFB54 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- C01FCF4E08A954540054247B /* Build configuration list for PBXProject "AAPLot" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- C01FCF4F08A954540054247B /* Debug */,
- C01FCF5008A954540054247B /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
-/* End XCConfigurationList section */
- };
- rootObject = 29B97313FDCFA39411CA2CEA /* Project object */;
-}
diff --git a/examples/AAPLot/AAPLot.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/examples/AAPLot/AAPLot.xcodeproj/project.xcworkspace/contents.xcworkspacedata
deleted file mode 100644
index 0044da799..000000000
--- a/examples/AAPLot/AAPLot.xcodeproj/project.xcworkspace/contents.xcworkspacedata
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
diff --git a/examples/AAPLot/AAPLot/Images.xcassets/AppIcon.appiconset/Contents.json b/examples/AAPLot/AAPLot/Images.xcassets/AppIcon.appiconset/Contents.json
deleted file mode 100644
index 340f2376e..000000000
--- a/examples/AAPLot/AAPLot/Images.xcassets/AppIcon.appiconset/Contents.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{
- "images" : [
- {
- "size" : "29x29",
- "idiom" : "iphone",
- "filename" : "Icon-Small.png",
- "scale" : "1x"
- },
- {
- "size" : "29x29",
- "idiom" : "iphone",
- "filename" : "Icon-Small@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "40x40",
- "idiom" : "iphone",
- "filename" : "Icon-Spotlight-40@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "57x57",
- "idiom" : "iphone",
- "filename" : "Icon.png",
- "scale" : "1x"
- },
- {
- "size" : "57x57",
- "idiom" : "iphone",
- "filename" : "Icon@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "60x60",
- "idiom" : "iphone",
- "filename" : "Icon-60@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "60x60",
- "idiom" : "iphone",
- "filename" : "Icon-60@3x.png",
- "scale" : "3x"
- }
- ],
- "info" : {
- "version" : 1,
- "author" : "xcode"
- }
-}
\ No newline at end of file
diff --git a/examples/AAPLot/AAPLot/Images.xcassets/AppIcon.appiconset/Icon-60@2x.png b/examples/AAPLot/AAPLot/Images.xcassets/AppIcon.appiconset/Icon-60@2x.png
deleted file mode 100644
index 489d32b6c..000000000
Binary files a/examples/AAPLot/AAPLot/Images.xcassets/AppIcon.appiconset/Icon-60@2x.png and /dev/null differ
diff --git a/examples/AAPLot/AAPLot/Images.xcassets/AppIcon.appiconset/Icon-60@3x.png b/examples/AAPLot/AAPLot/Images.xcassets/AppIcon.appiconset/Icon-60@3x.png
deleted file mode 100644
index e732a791c..000000000
Binary files a/examples/AAPLot/AAPLot/Images.xcassets/AppIcon.appiconset/Icon-60@3x.png and /dev/null differ
diff --git a/examples/AAPLot/AAPLot/Images.xcassets/AppIcon.appiconset/Icon-Small.png b/examples/AAPLot/AAPLot/Images.xcassets/AppIcon.appiconset/Icon-Small.png
deleted file mode 100644
index 0310c42a8..000000000
Binary files a/examples/AAPLot/AAPLot/Images.xcassets/AppIcon.appiconset/Icon-Small.png and /dev/null differ
diff --git a/examples/AAPLot/AAPLot/Images.xcassets/AppIcon.appiconset/Icon-Small@2x.png b/examples/AAPLot/AAPLot/Images.xcassets/AppIcon.appiconset/Icon-Small@2x.png
deleted file mode 100644
index 8170f07ca..000000000
Binary files a/examples/AAPLot/AAPLot/Images.xcassets/AppIcon.appiconset/Icon-Small@2x.png and /dev/null differ
diff --git a/examples/AAPLot/AAPLot/Images.xcassets/AppIcon.appiconset/Icon-Spotlight-40@2x.png b/examples/AAPLot/AAPLot/Images.xcassets/AppIcon.appiconset/Icon-Spotlight-40@2x.png
deleted file mode 100644
index c7fba2304..000000000
Binary files a/examples/AAPLot/AAPLot/Images.xcassets/AppIcon.appiconset/Icon-Spotlight-40@2x.png and /dev/null differ
diff --git a/examples/AAPLot/AAPLot/Images.xcassets/AppIcon.appiconset/Icon.png b/examples/AAPLot/AAPLot/Images.xcassets/AppIcon.appiconset/Icon.png
deleted file mode 100644
index ca3d9f35b..000000000
Binary files a/examples/AAPLot/AAPLot/Images.xcassets/AppIcon.appiconset/Icon.png and /dev/null differ
diff --git a/examples/AAPLot/AAPLot/Images.xcassets/AppIcon.appiconset/Icon@2x.png b/examples/AAPLot/AAPLot/Images.xcassets/AppIcon.appiconset/Icon@2x.png
deleted file mode 100644
index d67508c07..000000000
Binary files a/examples/AAPLot/AAPLot/Images.xcassets/AppIcon.appiconset/Icon@2x.png and /dev/null differ
diff --git a/examples/AAPLot/AAPLot/Images.xcassets/LaunchImage.launchimage/Contents.json b/examples/AAPLot/AAPLot/Images.xcassets/LaunchImage.launchimage/Contents.json
deleted file mode 100644
index f0fce5477..000000000
--- a/examples/AAPLot/AAPLot/Images.xcassets/LaunchImage.launchimage/Contents.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "images" : [
- {
- "orientation" : "portrait",
- "idiom" : "iphone",
- "filename" : "Default-568h@2x.png",
- "minimum-system-version" : "7.0",
- "subtype" : "retina4",
- "scale" : "2x"
- },
- {
- "idiom" : "iphone",
- "scale" : "1x",
- "orientation" : "portrait"
- },
- {
- "idiom" : "iphone",
- "scale" : "2x",
- "orientation" : "portrait"
- },
- {
- "orientation" : "portrait",
- "idiom" : "iphone",
- "filename" : "Default-568h@2x.png",
- "subtype" : "retina4",
- "scale" : "2x"
- },
- {
- "orientation" : "portrait",
- "idiom" : "iphone",
- "minimum-system-version" : "7.0",
- "scale" : "2x"
- }
- ],
- "info" : {
- "version" : 1,
- "author" : "xcode"
- }
-}
\ No newline at end of file
diff --git a/examples/AAPLot/AAPLot/Images.xcassets/LaunchImage.launchimage/Default-568h@2x.png b/examples/AAPLot/AAPLot/Images.xcassets/LaunchImage.launchimage/Default-568h@2x.png
deleted file mode 100644
index 0891b7aab..000000000
Binary files a/examples/AAPLot/AAPLot/Images.xcassets/LaunchImage.launchimage/Default-568h@2x.png and /dev/null differ
diff --git a/examples/AAPLot/AAPLot_Prefix.pch b/examples/AAPLot/AAPLot_Prefix.pch
deleted file mode 100644
index dc5f28052..000000000
--- a/examples/AAPLot/AAPLot_Prefix.pch
+++ /dev/null
@@ -1,10 +0,0 @@
-//
-// Prefix header for all source files of the 'AAPLot' target in the 'AAPLot' project
-//
-
-#define DEBUG (1)
-
-#ifdef __OBJC__
- #import
- #import
-#endif
diff --git a/examples/AAPLot/APFinancialData.h b/examples/AAPLot/APFinancialData.h
deleted file mode 100644
index 7ca481d37..000000000
--- a/examples/AAPLot/APFinancialData.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#import
-
-@interface NSDictionary(APFinancialData)
-
-+(id)dictionaryWithCSVLine:(NSString *)csvLine;
-
-@end
diff --git a/examples/AAPLot/APFinancialData.m b/examples/AAPLot/APFinancialData.m
deleted file mode 100644
index f274794b2..000000000
--- a/examples/AAPLot/APFinancialData.m
+++ /dev/null
@@ -1,34 +0,0 @@
-#import "APFinancialData.h"
-#import "NSDateFormatterExtensions.h"
-
-@implementation NSDictionary(APFinancialData)
-
-+(id)dictionaryWithCSVLine:(NSString *)csvLine
-{
- NSArray *csvChunks = [csvLine componentsSeparatedByString:@","];
-
- NSMutableDictionary *csvDict = [NSMutableDictionary dictionaryWithCapacity:7];
-
- // Date,Open,High,Low,Close,Volume,Adj Close
- // 2009-06-08,143.82,144.23,139.43,143.85,33255400,143.85
- NSDate *theDate = [[NSDateFormatter csvDateFormatter] dateFromString:(NSString *)csvChunks[0]];
-
- csvDict[@"date"] = theDate;
- NSDecimalNumber *theOpen = [NSDecimalNumber decimalNumberWithString:(NSString *)csvChunks[1]];
- csvDict[@"open"] = theOpen;
- NSDecimalNumber *theHigh = [NSDecimalNumber decimalNumberWithString:(NSString *)csvChunks[2]];
- csvDict[@"high"] = theHigh;
- NSDecimalNumber *theLow = [NSDecimalNumber decimalNumberWithString:(NSString *)csvChunks[3]];
- csvDict[@"low"] = theLow;
- NSDecimalNumber *theClose = [NSDecimalNumber decimalNumberWithString:(NSString *)csvChunks[4]];
- csvDict[@"close"] = theClose;
- NSDecimalNumber *theVolume = [NSDecimalNumber decimalNumberWithString:(NSString *)csvChunks[5]];
- csvDict[@"volume"] = theVolume;
- NSDecimalNumber *theAdjClose = [NSDecimalNumber decimalNumberWithString:(NSString *)csvChunks[6]];
- csvDict[@"adjClose"] = theAdjClose;
-
- //non-mutable autoreleased dict
- return [NSDictionary dictionaryWithDictionary:csvDict];
-}
-
-@end
diff --git a/examples/AAPLot/APYahooDataPuller.h b/examples/AAPLot/APYahooDataPuller.h
deleted file mode 100644
index 2e6c505d6..000000000
--- a/examples/AAPLot/APYahooDataPuller.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#import
-
-@class APYahooDataPuller;
-
-@protocol APYahooDataPullerDelegate
-
-@optional
-
--(void)dataPullerDidFinishFetch:(APYahooDataPuller *)dp;
-
-@end
-
-@interface APYahooDataPuller : NSObject
-
-@property (nonatomic, readwrite, weak) id delegate;
-@property (nonatomic, readwrite, copy) NSString *symbol;
-@property (nonatomic, readwrite, strong) NSDate *startDate;
-@property (nonatomic, readwrite, strong) NSDate *endDate;
-@property (nonatomic, readwrite, copy) NSString *targetSymbol;
-@property (nonatomic, readwrite, strong) NSDate *targetStartDate;
-@property (nonatomic, readwrite, strong) NSDate *targetEndDate;
-@property (nonatomic, readonly, strong) NSArray *financialData;
-@property (nonatomic, readonly, strong) NSDecimalNumber *overallHigh;
-@property (nonatomic, readonly, strong) NSDecimalNumber *overallLow;
-@property (nonatomic, readonly, strong) NSDecimalNumber *overallVolumeHigh;
-@property (nonatomic, readonly, strong) NSDecimalNumber *overallVolumeLow;
-@property (nonatomic, readonly, assign) BOOL loadingData;
-
--(instancetype)initWithTargetSymbol:(NSString *)aSymbol targetStartDate:(NSDate *)aStartDate targetEndDate:(NSDate *)anEndDate;
-
-@end
diff --git a/examples/AAPLot/APYahooDataPuller.m b/examples/AAPLot/APYahooDataPuller.m
deleted file mode 100644
index 8bc95d6c0..000000000
--- a/examples/AAPLot/APYahooDataPuller.m
+++ /dev/null
@@ -1,380 +0,0 @@
-#import "APFinancialData.h"
-#import "APYahooDataPuller.h"
-
-@interface APYahooDataPuller()
-
-@property (nonatomic, readwrite, copy) NSString *csvString;
-
-@property (nonatomic, readwrite, strong) NSDecimalNumber *overallHigh;
-@property (nonatomic, readwrite, strong) NSDecimalNumber *overallLow;
-@property (nonatomic, readwrite, strong) NSDecimalNumber *overallVolumeHigh;
-@property (nonatomic, readwrite, strong) NSDecimalNumber *overallVolumeLow;
-@property (nonatomic, readwrite, strong) NSArray *financialData;
-
-@property (nonatomic, readwrite, assign) BOOL loadingData;
-@property (nonatomic, readwrite, strong) NSMutableData *receivedData;
-@property (nonatomic, readwrite, strong) NSURLConnection *connection;
-
--(void)fetch;
--(NSString *)URL;
--(void)notifyPulledData;
--(void)parseCSVAndPopulate;
-
-NSTimeInterval timeIntervalForNumberOfWeeks(double numberOfWeeks);
-
-@end
-
-#pragma mark -
-
-NSTimeInterval timeIntervalForNumberOfWeeks(double numberOfWeeks)
-{
- NSTimeInterval seconds = fabs(60.0 * 60.0 * 24.0 * 7.0 * numberOfWeeks);
-
- return seconds;
-}
-
-@implementation APYahooDataPuller
-
-@synthesize symbol;
-@synthesize startDate;
-@synthesize endDate;
-@synthesize targetStartDate;
-@synthesize targetEndDate;
-@synthesize targetSymbol;
-@synthesize overallLow;
-@synthesize overallHigh;
-@synthesize overallVolumeHigh;
-@synthesize overallVolumeLow;
-@synthesize csvString;
-@synthesize financialData;
-
-@synthesize receivedData;
-@synthesize connection;
-@synthesize loadingData;
-
-@synthesize delegate;
-
--(void)setDelegate:(id)aDelegate
-{
- if ( delegate != aDelegate ) {
- delegate = aDelegate;
- if ( self.financialData.count > 0 ) {
- [self notifyPulledData]; //loads cached data onto UI
- }
- }
-}
-
--(NSDictionary *)plistRep
-{
- NSMutableDictionary *rep = [NSMutableDictionary dictionaryWithCapacity:7];
-
- rep[@"symbol"] = [self symbol];
- rep[@"startDate"] = [self startDate];
- rep[@"endDate"] = [self endDate];
- rep[@"overallHigh"] = [self overallHigh];
- rep[@"overallLow"] = [self overallLow];
- rep[@"overallVolumeHigh"] = [self overallVolumeHigh];
- rep[@"overallVolumeLow"] = [self overallVolumeLow];
- rep[@"financialData"] = [self financialData];
- return [NSDictionary dictionaryWithDictionary:rep];
-}
-
--(BOOL)writeToFile:(NSString *)path atomically:(BOOL)flag
-{
- NSLog(@"writeToFile:%@", path);
- BOOL success = [[self plistRep] writeToFile:path atomically:flag];
- return success;
-}
-
--(instancetype)initWithDictionary:(NSDictionary *)aDict targetSymbol:(NSString *)aSymbol targetStartDate:(NSDate *)aStartDate targetEndDate:(NSDate *)anEndDate
-{
- self = [super init];
- if ( self != nil ) {
- self.symbol = aDict[@"symbol"];
- self.startDate = aDict[@"startDate"];
- self.overallLow = [NSDecimalNumber decimalNumberWithDecimal:[aDict[@"overallLow"] decimalValue]];
- self.overallHigh = [NSDecimalNumber decimalNumberWithDecimal:[aDict[@"overallHigh"] decimalValue]];
- self.endDate = aDict[@"endDate"];
- self.financialData = aDict[@"financialData"];
-
- self.targetSymbol = aSymbol;
- self.targetStartDate = aStartDate;
- self.targetEndDate = anEndDate;
- self.csvString = @"";
- [self performSelector:@selector(fetch) withObject:nil afterDelay:0.01];
- }
- return self;
-}
-
--(NSString *)pathForSymbol:(NSString *)aSymbol
-{
- NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
- NSString *documentsDirectory = paths[0];
- NSString *docPath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.plist", aSymbol]];
-
- return docPath;
-}
-
--(NSString *)faultTolerantPathForSymbol:(NSString *)aSymbol
-{
- NSString *docPath = [self pathForSymbol:aSymbol];
-
- if ( ![[NSFileManager defaultManager] fileExistsAtPath:docPath] ) {
- //if there isn't one in the user's documents directory, see if we ship with this data
- docPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.plist", aSymbol]];
- }
- return docPath;
-}
-
-//Always returns *something*
--(NSDictionary *)dictionaryForSymbol:(NSString *)aSymbol
-{
- NSString *path = [self faultTolerantPathForSymbol:aSymbol];
- NSMutableDictionary *localPlistDict = [NSMutableDictionary dictionaryWithContentsOfFile:path];
-
- return localPlistDict;
-}
-
--(instancetype)initWithTargetSymbol:(NSString *)aSymbol targetStartDate:(NSDate *)aStartDate targetEndDate:(NSDate *)anEndDate
-{
- NSDictionary *cachedDictionary = [self dictionaryForSymbol:aSymbol];
-
- if ( nil != cachedDictionary ) {
- return [self initWithDictionary:cachedDictionary targetSymbol:aSymbol targetStartDate:aStartDate targetEndDate:anEndDate];
- }
-
- NSMutableDictionary *rep = [NSMutableDictionary dictionaryWithCapacity:7];
- rep[@"symbol"] = aSymbol;
- rep[@"startDate"] = aStartDate;
- rep[@"endDate"] = anEndDate;
- rep[@"overallHigh"] = [NSDecimalNumber notANumber];
- rep[@"overallLow"] = [NSDecimalNumber notANumber];
- rep[@"financialData"] = @[];
- return [self initWithDictionary:rep targetSymbol:aSymbol targetStartDate:aStartDate targetEndDate:anEndDate];
-}
-
--(instancetype)init
-{
- NSTimeInterval secondsAgo = -timeIntervalForNumberOfWeeks(14.0); //12 weeks ago
- NSDate *start = [NSDate dateWithTimeIntervalSinceNow:secondsAgo];
-
- NSDate *end = [NSDate date];
-
- return [self initWithTargetSymbol:@"GOOG" targetStartDate:start targetEndDate:end];
-}
-
--(void)dealloc
-{
- delegate = nil;
-}
-
-// http://www.goldb.org/ystockquote.html
--(NSString *)URL
-{
- unsigned int unitFlags = NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitYear;
-
- NSCalendar *gregorian = [[NSCalendar alloc]
- initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
-
- NSDateComponents *compsStart = [gregorian components:unitFlags fromDate:self.targetStartDate];
- NSDateComponents *compsEnd = [gregorian components:unitFlags fromDate:self.targetEndDate];
-
- NSString *url = [NSString stringWithFormat:@"http://ichart.yahoo.com/table.csv?s=%@&", [self targetSymbol]];
-
- url = [url stringByAppendingFormat:@"a=%ld&", (long)[compsStart month] - 1];
- url = [url stringByAppendingFormat:@"b=%ld&", (long)[compsStart day]];
- url = [url stringByAppendingFormat:@"c=%ld&", (long)[compsStart year]];
-
- url = [url stringByAppendingFormat:@"d=%ld&", (long)[compsEnd month] - 1];
- url = [url stringByAppendingFormat:@"e=%ld&", (long)[compsEnd day]];
- url = [url stringByAppendingFormat:@"f=%ld&", (long)[compsEnd year]];
- url = [url stringByAppendingString:@"g=d&"];
-
- url = [url stringByAppendingString:@"ignore=.csv"];
- url = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
- return url;
-}
-
--(void)notifyPulledData
-{
- id theDelegate = self.delegate;
-
- if ( [theDelegate respondsToSelector:@selector(dataPullerDidFinishFetch:)] ) {
- [theDelegate performSelector:@selector(dataPullerDidFinishFetch:) withObject:self];
- }
-}
-
-#pragma mark -
-#pragma mark Downloading of data
-
--(BOOL)shouldDownload
-{
- BOOL shouldDownload = YES;
-
- return shouldDownload;
-}
-
--(void)fetch
-{
- if ( self.loadingData ) {
- return;
- }
-
- if ( [self shouldDownload] ) {
- self.loadingData = YES;
- NSString *urlString = [self URL];
- NSLog(@"URL = %@", urlString);
- NSURL *url = [NSURL URLWithString:urlString];
- NSURLRequest *theRequest = [NSURLRequest requestWithURL:url
- cachePolicy:NSURLRequestUseProtocolCachePolicy
- timeoutInterval:60.0];
-
- // create the connection with the request
- // and start loading the data
- self.connection = [NSURLConnection connectionWithRequest:theRequest delegate:self];
- if ( self.connection ) {
- self.receivedData = [NSMutableData data];
- }
- else {
- //TODO: Inform the user that the download could not be started
- self.loadingData = NO;
- }
- }
-}
-
--(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
-{
- // append the new data to the receivedData
- [self.receivedData appendData:data];
-}
-
--(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
-{
- // this method is called when the server has determined that it
- // has enough information to create the NSURLResponse
- // it can be called multiple times, for example in the case of a
- // redirect, so each time we reset the data.
- [self.receivedData setLength:0];
-}
-
--(void)cancelDownload
-{
- if ( self.loadingData ) {
- [self.connection cancel];
- self.loadingData = NO;
-
- self.receivedData = nil;
- self.connection = nil;
- }
-}
-
--(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
-{
- self.loadingData = NO;
- self.receivedData = nil;
- self.connection = nil;
- NSLog(@"err = %@", [error localizedDescription]);
- //TODO:report err
-}
-
--(void)connectionDidFinishLoading:(NSURLConnection *)connection
-{
- self.loadingData = NO;
- self.connection = nil;
-
- NSString *csv = [[NSString alloc] initWithData:self.receivedData encoding:NSUTF8StringEncoding];
- self.csvString = csv;
-
- self.receivedData = nil;
- [self parseCSVAndPopulate];
-
- //see if we need to write to file
- NSDictionary *dictionaryForSymbol = [self dictionaryForSymbol:self.symbol];
-
- BOOL sameSymbol = NO;
- NSString *dictSymbol = dictionaryForSymbol[@"symbol"];
- if ( dictSymbol ) {
- sameSymbol = [[self symbol] isEqualToString:dictSymbol];
- }
-
- BOOL sameStart = NO;
- NSDate *dictStart = dictionaryForSymbol[@"startDate"];
- if ( dictStart ) {
- sameStart = ([[self startDate] compare:dictStart] != NSOrderedSame);
- }
-
- BOOL sameEnd = NO;
- NSDate *dictEnd = dictionaryForSymbol[@"endDate"];
- if ( dictEnd ) {
- sameEnd = ([[self startDate] compare:dictEnd] != NSOrderedSame);
- }
-
- if ( !sameSymbol || !sameStart || !sameEnd ) {
- [self writeToFile:[self pathForSymbol:self.symbol] atomically:YES];
- }
- else {
- NSLog(@"Not writing to file -- No Need, its data is fresh.");
- }
-}
-
--(void)parseCSVAndPopulate
-{
- NSArray *csvLines = [self.csvString componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]];
- NSMutableArray *newFinancials = [NSMutableArray arrayWithCapacity:[csvLines count]];
- NSDictionary *currentFinancial = nil;
- NSString *line = nil;
-
- self.overallHigh = [NSDecimalNumber notANumber];
- self.overallLow = [NSDecimalNumber notANumber];
- self.overallVolumeHigh = [NSDecimalNumber notANumber];
- self.overallVolumeLow = [NSDecimalNumber notANumber];
-
- for ( NSUInteger i = 1; i < [csvLines count] - 1; i++ ) {
- line = (NSString *)csvLines[i];
- currentFinancial = [NSDictionary dictionaryWithCSVLine:line];
- [newFinancials addObject:currentFinancial];
-
- NSDecimalNumber *high = currentFinancial[@"high"];
- NSDecimalNumber *low = currentFinancial[@"low"];
- NSDecimalNumber *volume = currentFinancial[@"volume"];
-
- if ( [self.overallHigh isEqual:[NSDecimalNumber notANumber]] ) {
- self.overallHigh = high;
- }
-
- if ( [self.overallLow isEqual:[NSDecimalNumber notANumber]] ) {
- self.overallLow = low;
- }
-
- if ( [low compare:self.overallLow] == NSOrderedAscending ) {
- self.overallLow = low;
- }
- if ( [high compare:self.overallHigh] == NSOrderedDescending ) {
- self.overallHigh = high;
- }
-
- if ( [self.overallVolumeHigh isEqual:[NSDecimalNumber notANumber]] ) {
- self.overallVolumeHigh = volume;
- }
-
- if ( [self.overallVolumeLow isEqual:[NSDecimalNumber notANumber]] ) {
- self.overallVolumeLow = volume;
- }
-
- if ( [volume compare:self.overallVolumeLow] == NSOrderedAscending ) {
- self.overallVolumeLow = volume;
- }
-
- if ( [volume compare:self.overallVolumeHigh] == NSOrderedDescending ) {
- self.overallVolumeHigh = volume;
- }
- }
- self.startDate = self.targetStartDate;
- self.endDate = self.targetEndDate;
- self.symbol = self.targetSymbol;
-
- [self setFinancialData:[NSArray arrayWithArray:newFinancials]];
- [self notifyPulledData];
-}
-
-@end
diff --git a/examples/AAPLot/Classes/AAPLotAppDelegate.h b/examples/AAPLot/Classes/AAPLotAppDelegate.h
deleted file mode 100644
index c55b9f096..000000000
--- a/examples/AAPLot/Classes/AAPLotAppDelegate.h
+++ /dev/null
@@ -1,18 +0,0 @@
-//
-// AAPLotAppDelegate.h
-// AAPLot
-//
-// Created by Jonathan Saggau on 6/9/09.
-// Copyright Sounds Broken inc. 2009. All rights reserved.
-//
-
-#import
-
-@class RootViewController;
-
-@interface AAPLotAppDelegate : NSObject
-
-@property (nonatomic, strong) IBOutlet UIWindow *window;
-@property (nonatomic, strong) IBOutlet RootViewController *rootViewController;
-
-@end
diff --git a/examples/AAPLot/Classes/AAPLotAppDelegate.m b/examples/AAPLot/Classes/AAPLotAppDelegate.m
deleted file mode 100644
index bc20eff63..000000000
--- a/examples/AAPLot/Classes/AAPLotAppDelegate.m
+++ /dev/null
@@ -1,23 +0,0 @@
-//
-// AAPLotAppDelegate.m
-// AAPLot
-//
-// Created by Jonathan Saggau on 6/9/09.
-// Copyright Sounds Broken inc. 2009. All rights reserved.
-//
-
-#import "AAPLotAppDelegate.h"
-#import "RootViewController.h"
-
-@implementation AAPLotAppDelegate
-
-@synthesize window;
-@synthesize rootViewController;
-
--(void)applicationDidFinishLaunching:(UIApplication *)application
-{
- self.window.rootViewController = self.rootViewController;
- [self.window makeKeyAndVisible];
-}
-
-@end
diff --git a/examples/AAPLot/Classes/FlipsideView.h b/examples/AAPLot/Classes/FlipsideView.h
deleted file mode 100644
index 9a407b402..000000000
--- a/examples/AAPLot/Classes/FlipsideView.h
+++ /dev/null
@@ -1,14 +0,0 @@
-//
-// FlipsideView.h
-// AAPLot
-//
-// Created by Jonathan Saggau on 6/9/09.
-// Copyright Sounds Broken inc. 2009. All rights reserved.
-//
-
-#import
-
-@interface FlipsideView : UIView {
-}
-
-@end
diff --git a/examples/AAPLot/Classes/FlipsideView.m b/examples/AAPLot/Classes/FlipsideView.m
deleted file mode 100644
index 21d8c4f55..000000000
--- a/examples/AAPLot/Classes/FlipsideView.m
+++ /dev/null
@@ -1,26 +0,0 @@
-//
-// FlipsideView.m
-// AAPLot
-//
-// Created by Jonathan Saggau on 6/9/09.
-// Copyright Sounds Broken inc. 2009. All rights reserved.
-//
-
-#import "FlipsideView.h"
-
-@implementation FlipsideView
-
--(instancetype)initWithFrame:(CGRect)frame
-{
- if ( (self = [super initWithFrame:frame]) ) {
- // Initialization code
- }
- return self;
-}
-
--(void)drawRect:(CGRect)rect
-{
- // Drawing code
-}
-
-@end
diff --git a/examples/AAPLot/Classes/FlipsideViewController.h b/examples/AAPLot/Classes/FlipsideViewController.h
deleted file mode 100644
index ed84c2d55..000000000
--- a/examples/AAPLot/Classes/FlipsideViewController.h
+++ /dev/null
@@ -1,14 +0,0 @@
-//
-// FlipsideViewController.h
-// AAPLot
-//
-// Created by Jonathan Saggau on 6/9/09.
-// Copyright Sounds Broken inc. 2009. All rights reserved.
-//
-
-#import
-
-@interface FlipsideViewController : UIViewController {
-}
-
-@end
diff --git a/examples/AAPLot/Classes/FlipsideViewController.m b/examples/AAPLot/Classes/FlipsideViewController.m
deleted file mode 100644
index 727f8548e..000000000
--- a/examples/AAPLot/Classes/FlipsideViewController.m
+++ /dev/null
@@ -1,39 +0,0 @@
-//
-// FlipsideViewController.m
-// AAPLot
-//
-// Created by Jonathan Saggau on 6/9/09.
-// Copyright Sounds Broken inc. 2009. All rights reserved.
-//
-
-#import "FlipsideViewController.h"
-
-@implementation FlipsideViewController
-
--(void)viewDidLoad
-{
- [super viewDidLoad];
-
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
- if ( [UIColor respondsToSelector:@selector(viewFlipsideBackgroundColor)] ) {
- self.view.backgroundColor = [UIColor viewFlipsideBackgroundColor];
- }
-#pragma clang diagnostic pop
-}
-
-/*
- * // Override to allow orientations other than the default portrait orientation.
- * - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
- * // Return YES for supported orientations
- * return (interfaceOrientation == UIInterfaceOrientationPortrait);
- * }
- */
-
--(void)didReceiveMemoryWarning
-{
- [super didReceiveMemoryWarning]; // Releases the view if it doesn't have a superview
- // Release anything that's not essential, such as cached data
-}
-
-@end
diff --git a/examples/AAPLot/Classes/MainViewController.h b/examples/AAPLot/Classes/MainViewController.h
deleted file mode 100644
index f907b8530..000000000
--- a/examples/AAPLot/Classes/MainViewController.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#import "APYahooDataPuller.h"
-#import "CorePlot-CocoaTouch.h"
-#import
-
-@class CPTGraphHostingView;
-@class APYahooDataPuller;
-@class CPTXYGraph;
-
-@interface MainViewController : UIViewController
-
-@property (nonatomic, readwrite, strong) IBOutlet CPTGraphHostingView *graphHost;
-
-@end
diff --git a/examples/AAPLot/Classes/MainViewController.m b/examples/AAPLot/Classes/MainViewController.m
deleted file mode 100644
index b0b67309c..000000000
--- a/examples/AAPLot/Classes/MainViewController.m
+++ /dev/null
@@ -1,670 +0,0 @@
-#import "APFinancialData.h"
-#import "APYahooDataPuller.h"
-#import "MainViewController.h"
-
-#define ROWS_FIRST_DATA_ORDER 1
-
-@interface MainViewController()
-
-@property (nonatomic, readwrite, strong) CPTXYGraph *graph;
-@property (nonatomic, readwrite, strong) APYahooDataPuller *datapuller;
-
-@end
-
-@implementation MainViewController
-
-@synthesize graph;
-@synthesize datapuller;
-@synthesize graphHost;
-
--(void)setView:(UIView *)aView
-{
- [super setView:aView];
- if ( nil == aView ) {
- self.graph = nil;
- self.graphHost = nil;
- }
-}
-
--(void)viewDidLoad
-{
- CPTXYGraph *newGraph = [[CPTXYGraph alloc] initWithFrame:self.view.bounds];
- CPTTheme *theme = [CPTTheme themeNamed:kCPTStocksTheme];
-
- [newGraph applyTheme:theme];
- self.graph = newGraph;
-
- newGraph.paddingRight = 50.0;
- newGraph.paddingLeft = 50.0;
- newGraph.plotAreaFrame.masksToBorder = NO;
- newGraph.plotAreaFrame.cornerRadius = 0.0;
-
- CPTMutableLineStyle *borderLineStyle = [CPTMutableLineStyle lineStyle];
- borderLineStyle.lineColor = [CPTColor whiteColor];
- borderLineStyle.lineWidth = 2.0;
- newGraph.plotAreaFrame.borderLineStyle = borderLineStyle;
- self.graphHost.hostedGraph = newGraph;
-
- // Axes
- CPTXYAxisSet *xyAxisSet = (CPTXYAxisSet *)newGraph.axisSet;
- CPTXYAxis *xAxis = xyAxisSet.xAxis;
- CPTMutableLineStyle *lineStyle = [xAxis.axisLineStyle mutableCopy];
- lineStyle.lineCap = kCGLineCapButt;
- xAxis.axisLineStyle = lineStyle;
- xAxis.labelingPolicy = CPTAxisLabelingPolicyNone;
-
- CPTXYAxis *yAxis = xyAxisSet.yAxis;
- yAxis.axisLineStyle = nil;
-
- // Line plot with gradient fill
- CPTScatterPlot *dataSourceLinePlot = [[CPTScatterPlot alloc] initWithFrame:newGraph.bounds];
- dataSourceLinePlot.identifier = @"Data Source Plot";
- dataSourceLinePlot.dataLineStyle = nil;
- dataSourceLinePlot.dataSource = self;
- dataSourceLinePlot.cachePrecision = CPTPlotCachePrecisionDouble;
- [newGraph addPlot:dataSourceLinePlot];
-
- CPTColor *areaColor = [CPTColor colorWithComponentRed:CPTFloat(1.0) green:CPTFloat(1.0) blue:CPTFloat(1.0) alpha:CPTFloat(0.6)];
- CPTGradient *areaGradient = [CPTGradient gradientWithBeginningColor:areaColor endingColor:[CPTColor clearColor]];
- areaGradient.angle = -90.0;
- CPTFill *areaGradientFill = [CPTFill fillWithGradient:areaGradient];
- dataSourceLinePlot.areaFill = areaGradientFill;
- dataSourceLinePlot.areaBaseValue = CPTDecimalFromDouble(200.0);
-
- areaColor = [CPTColor colorWithComponentRed:CPTFloat(0.0) green:CPTFloat(1.0) blue:CPTFloat(0.0) alpha:CPTFloat(0.6)];
- areaGradient = [CPTGradient gradientWithBeginningColor:[CPTColor clearColor] endingColor:areaColor];
- areaGradient.angle = -90.0;
- areaGradientFill = [CPTFill fillWithGradient:areaGradient];
- dataSourceLinePlot.areaFill2 = areaGradientFill;
- dataSourceLinePlot.areaBaseValue2 = CPTDecimalFromDouble(400.0);
-
- // OHLC plot
- CPTMutableLineStyle *whiteLineStyle = [CPTMutableLineStyle lineStyle];
- whiteLineStyle.lineColor = [CPTColor whiteColor];
- whiteLineStyle.lineWidth = 1.0;
- CPTTradingRangePlot *ohlcPlot = [[CPTTradingRangePlot alloc] initWithFrame:newGraph.bounds];
- ohlcPlot.identifier = @"OHLC";
- ohlcPlot.lineStyle = whiteLineStyle;
- CPTMutableTextStyle *whiteTextStyle = [CPTMutableTextStyle textStyle];
- whiteTextStyle.color = [CPTColor whiteColor];
- whiteTextStyle.fontSize = 8.0;
- ohlcPlot.labelTextStyle = whiteTextStyle;
- ohlcPlot.labelOffset = 5.0;
- ohlcPlot.stickLength = 2.0;
- ohlcPlot.dataSource = self;
- ohlcPlot.plotStyle = CPTTradingRangePlotStyleOHLC;
- ohlcPlot.cachePrecision = CPTPlotCachePrecisionDecimal;
- [newGraph addPlot:ohlcPlot];
-
- // Add plot space for bar chart
- CPTXYPlotSpace *volumePlotSpace = [[CPTXYPlotSpace alloc] init];
- volumePlotSpace.identifier = @"Volume Plot Space";
- [newGraph addPlotSpace:volumePlotSpace];
-
- // Volume plot
- CPTBarPlot *volumePlot = [CPTBarPlot tubularBarPlotWithColor:[CPTColor blackColor] horizontalBars:NO];
- volumePlot.dataSource = self;
-
- lineStyle = [volumePlot.lineStyle mutableCopy];
- lineStyle.lineColor = [CPTColor whiteColor];
- volumePlot.lineStyle = lineStyle;
-
- volumePlot.fill = nil;
- volumePlot.barWidth = CPTDecimalFromFloat(1.0f);
- volumePlot.identifier = @"Volume Plot";
- volumePlot.cachePrecision = CPTPlotCachePrecisionDouble;
- [newGraph addPlot:volumePlot toPlotSpace:volumePlotSpace];
-
- // Data puller
- NSDate *start = [NSDate dateWithTimeIntervalSinceNow:-60.0 * 60.0 * 24.0 * 7.0 * 12.0]; // 12 weeks ago
- NSDate *end = [NSDate date];
- APYahooDataPuller *dp = [[APYahooDataPuller alloc] initWithTargetSymbol:@"AAPL" targetStartDate:start targetEndDate:end];
- [self setDatapuller:dp];
- [dp setDelegate:self];
-
- [super viewDidLoad];
-}
-
--(instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
-{
- if ( (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) ) {
- }
- return self;
-}
-
-#pragma mark -
-#pragma mark Plot Data Source Methods
-
--(NSUInteger)numberOfRecordsForPlot:(CPTPlot *)plot
-{
- return self.datapuller.financialData.count;
-}
-
-#if ROWS_FIRST_DATA_ORDER
-
--(CPTNumericData *)dataForPlot:(CPTPlot *)plot recordIndexRange:(NSRange)indexRange
-{
- NSArray *financialData = self.datapuller.financialData;
- const NSUInteger financialDataCount = financialData.count;
-
- const BOOL useDoubles = plot.doublePrecisionCache;
-
- NSUInteger numFields = plot.numberOfFields;
-
- if ( [plot.identifier isEqual:@"Volume Plot"] ) {
- numFields = 2;
- }
-
- NSMutableData *data = [[NSMutableData alloc] initWithLength:indexRange.length * numFields * ( useDoubles ? sizeof(double) : sizeof(NSDecimal) )];
-
- const NSUInteger maxIndex = NSMaxRange(indexRange);
-
- if ( [plot.identifier isEqual:@"Data Source Plot"] ) {
- if ( useDoubles ) {
- double *nextValue = data.mutableBytes;
-
- for ( NSUInteger i = indexRange.location; i < maxIndex; i++ ) {
- NSDictionary *fData = (NSDictionary *)financialData[financialDataCount - i - 1];
- NSNumber *value;
-
- for ( NSUInteger fieldEnum = 0; fieldEnum < numFields; fieldEnum++ ) {
- switch ( fieldEnum ) {
- case CPTScatterPlotFieldX:
- *nextValue++ = (double)(i + 1);
- break;
-
- case CPTScatterPlotFieldY:
- value = fData[@"close"];
- NSAssert(value, @"Close value was nil");
- *nextValue++ = [value doubleValue];
- break;
-
- default:
- break;
- }
- }
- }
- }
- else {
- NSDecimal *nextValue = data.mutableBytes;
-
- for ( NSUInteger i = indexRange.location; i < maxIndex; i++ ) {
- NSDictionary *fData = (NSDictionary *)financialData[financialDataCount - i - 1];
- NSNumber *value;
-
- for ( NSUInteger fieldEnum = 0; fieldEnum < numFields; fieldEnum++ ) {
- switch ( fieldEnum ) {
- case CPTScatterPlotFieldX:
- *nextValue++ = CPTDecimalFromUnsignedInteger(i + 1);
- break;
-
- case CPTScatterPlotFieldY:
- value = fData[@"close"];
- NSAssert(value, @"Close value was nil");
- *nextValue++ = [value decimalValue];
- break;
-
- default:
- break;
- }
- }
- }
- }
- }
- else if ( [plot.identifier isEqual:@"Volume Plot"] ) {
- if ( useDoubles ) {
- double *nextValue = data.mutableBytes;
-
- for ( NSUInteger i = indexRange.location; i < maxIndex; i++ ) {
- NSDictionary *fData = (NSDictionary *)financialData[financialDataCount - i - 1];
- NSNumber *value;
-
- for ( NSUInteger fieldEnum = 0; fieldEnum < numFields; fieldEnum++ ) {
- switch ( fieldEnum ) {
- case CPTBarPlotFieldBarLocation:
- *nextValue++ = (double)(i + 1);
- break;
-
- case CPTBarPlotFieldBarTip:
- value = fData[@"volume"];
- NSAssert(value, @"Volume value was nil");
- *nextValue++ = [value doubleValue];
- break;
-
- default:
- break;
- }
- }
- }
- }
- else {
- NSDecimal *nextValue = data.mutableBytes;
-
- for ( NSUInteger i = indexRange.location; i < maxIndex; i++ ) {
- NSDictionary *fData = (NSDictionary *)financialData[financialDataCount - i - 1];
- NSNumber *value;
-
- for ( NSUInteger fieldEnum = 0; fieldEnum < numFields; fieldEnum++ ) {
- switch ( fieldEnum ) {
- case CPTBarPlotFieldBarLocation:
- *nextValue++ = CPTDecimalFromUnsignedInteger(i + 1);
- break;
-
- case CPTBarPlotFieldBarTip:
- value = fData[@"volume"];
- NSAssert(value, @"Volume value was nil");
- *nextValue++ = [value decimalValue];
- break;
-
- default:
- break;
- }
- }
- }
- }
- }
- else {
- if ( useDoubles ) {
- double *nextValue = data.mutableBytes;
-
- for ( NSUInteger i = indexRange.location; i < maxIndex; i++ ) {
- NSDictionary *fData = (NSDictionary *)financialData[financialDataCount - i - 1];
- NSNumber *value;
-
- for ( NSUInteger fieldEnum = 0; fieldEnum < numFields; fieldEnum++ ) {
- switch ( fieldEnum ) {
- case CPTTradingRangePlotFieldX:
- *nextValue++ = (double)(i + 1);
- break;
-
- case CPTTradingRangePlotFieldOpen:
- value = fData[@"open"];
- NSAssert(value, @"Open value was nil");
- *nextValue++ = [value doubleValue];
- break;
-
- case CPTTradingRangePlotFieldHigh:
- value = fData[@"high"];
- NSAssert(value, @"High value was nil");
- *nextValue++ = [value doubleValue];
- break;
-
- case CPTTradingRangePlotFieldLow:
- value = fData[@"low"];
- NSAssert(value, @"Low value was nil");
- *nextValue++ = [value doubleValue];
- break;
-
- case CPTTradingRangePlotFieldClose:
- value = fData[@"close"];
- NSAssert(value, @"Close value was nil");
- *nextValue++ = [value doubleValue];
- break;
-
- default:
- break;
- }
- }
- }
- }
- else {
- NSDecimal *nextValue = data.mutableBytes;
-
- for ( NSUInteger i = indexRange.location; i < maxIndex; i++ ) {
- NSDictionary *fData = (NSDictionary *)financialData[financialDataCount - i - 1];
- NSNumber *value;
-
- for ( NSUInteger fieldEnum = 0; fieldEnum < numFields; fieldEnum++ ) {
- switch ( fieldEnum ) {
- case CPTTradingRangePlotFieldX:
- *nextValue++ = CPTDecimalFromUnsignedInteger(i + 1);
- break;
-
- case CPTTradingRangePlotFieldOpen:
- value = fData[@"open"];
- NSAssert(value, @"Open value was nil");
- *nextValue++ = [value decimalValue];
- break;
-
- case CPTTradingRangePlotFieldHigh:
- value = fData[@"high"];
- NSAssert(value, @"High value was nil");
- *nextValue++ = [value decimalValue];
- break;
-
- case CPTTradingRangePlotFieldLow:
- value = fData[@"low"];
- NSAssert(value, @"Low value was nil");
- *nextValue++ = [value decimalValue];
- break;
-
- case CPTTradingRangePlotFieldClose:
- value = fData[@"close"];
- NSAssert(value, @"Close value was nil");
- *nextValue++ = [value decimalValue];
- break;
-
- default:
- break;
- }
- }
- }
- }
- }
-
- CPTMutableNumericData *numericData = [CPTMutableNumericData numericDataWithData:data
- dataType:(useDoubles ? plot.doubleDataType : plot.decimalDataType)
- shape:@[@(indexRange.length),
- @(numFields)]
- dataOrder:CPTDataOrderRowsFirst];
-
- return numericData;
-}
-
-#else
-
--(CPTNumericData *)dataForPlot:(CPTPlot *)plot recordIndexRange:(NSRange)indexRange
-{
- NSArray *financialData = self.datapuller.financialData;
- const NSUInteger financialDataCount = financialData.count;
-
- const BOOL useDoubles = plot.doublePrecisionCache;
-
- NSUInteger numFields = plot.numberOfFields;
-
- if ( [plot.identifier isEqual:@"Volume Plot"] ) {
- numFields = 2;
- }
-
- NSMutableData *data = [[NSMutableData alloc] initWithLength:indexRange.length * numFields * ( useDoubles ? sizeof(double) : sizeof(NSDecimal) )];
-
- const NSUInteger maxIndex = NSMaxRange(indexRange);
-
- if ( [plot.identifier isEqual:@"Data Source Plot"] ) {
- if ( useDoubles ) {
- double *nextValue = data.mutableBytes;
-
- for ( int fieldEnum = 0; fieldEnum < numFields; fieldEnum++ ) {
- for ( NSUInteger i = indexRange.location; i < maxIndex; i++ ) {
- NSDictionary *fData = (NSDictionary *)[financialData objectAtIndex:financialDataCount - i - 1];
- NSNumber *value;
-
- switch ( fieldEnum ) {
- case CPTScatterPlotFieldX:
- *nextValue++ = (double)(i + 1);
- break;
-
- case CPTScatterPlotFieldY:
- value = [fData objectForKey:@"close"];
- NSAssert(value, @"Close value was nil");
- *nextValue++ = [value doubleValue];
- break;
-
- default:
- break;
- }
- }
- }
- }
- else {
- NSDecimal *nextValue = data.mutableBytes;
-
- for ( int fieldEnum = 0; fieldEnum < numFields; fieldEnum++ ) {
- for ( NSUInteger i = indexRange.location; i < maxIndex; i++ ) {
- NSDictionary *fData = (NSDictionary *)[financialData objectAtIndex:financialDataCount - i - 1];
- NSNumber *value;
-
- switch ( fieldEnum ) {
- case CPTScatterPlotFieldX:
- *nextValue++ = CPTDecimalFromUnsignedInteger(i + 1);
- break;
-
- case CPTScatterPlotFieldY:
- value = [fData objectForKey:@"close"];
- NSAssert(value, @"Close value was nil");
- *nextValue++ = [value decimalValue];
- break;
-
- default:
- break;
- }
- }
- }
- }
- }
- else if ( [plot.identifier isEqual:@"Volume Plot"] ) {
- if ( useDoubles ) {
- double *nextValue = data.mutableBytes;
-
- for ( int fieldEnum = 0; fieldEnum < numFields; fieldEnum++ ) {
- for ( NSUInteger i = indexRange.location; i < maxIndex; i++ ) {
- NSDictionary *fData = (NSDictionary *)[financialData objectAtIndex:financialDataCount - i - 1];
- NSNumber *value;
-
- switch ( fieldEnum ) {
- case CPTBarPlotFieldBarLocation:
- *nextValue++ = (double)(i + 1);
- break;
-
- case CPTBarPlotFieldBarTip:
- value = [fData objectForKey:@"volume"];
- NSAssert(value, @"Volume value was nil");
- *nextValue++ = [value doubleValue];
- break;
-
- default:
- break;
- }
- }
- }
- }
- else {
- NSDecimal *nextValue = data.mutableBytes;
-
- for ( int fieldEnum = 0; fieldEnum < numFields; fieldEnum++ ) {
- for ( NSUInteger i = indexRange.location; i < maxIndex; i++ ) {
- NSDictionary *fData = (NSDictionary *)[financialData objectAtIndex:financialDataCount - i - 1];
- NSNumber *value;
-
- switch ( fieldEnum ) {
- case CPTBarPlotFieldBarLocation:
- *nextValue++ = CPTDecimalFromUnsignedInteger(i + 1);
- break;
-
- case CPTBarPlotFieldBarTip:
- value = [fData objectForKey:@"volume"];
- NSAssert(value, @"Volume value was nil");
- *nextValue++ = [value decimalValue];
- break;
-
- default:
- break;
- }
- }
- }
- }
- }
- else {
- if ( useDoubles ) {
- double *nextValue = data.mutableBytes;
-
- for ( int fieldEnum = 0; fieldEnum < numFields; fieldEnum++ ) {
- for ( NSUInteger i = indexRange.location; i < maxIndex; i++ ) {
- NSDictionary *fData = (NSDictionary *)[financialData objectAtIndex:financialDataCount - i - 1];
- NSNumber *value;
-
- switch ( fieldEnum ) {
- case CPTTradingRangePlotFieldX:
- *nextValue++ = (double)(i + 1);
- break;
-
- case CPTTradingRangePlotFieldOpen:
- value = [fData objectForKey:@"open"];
- NSAssert(value, @"Open value was nil");
- *nextValue++ = [value doubleValue];
- break;
-
- case CPTTradingRangePlotFieldHigh:
- value = [fData objectForKey:@"high"];
- NSAssert(value, @"High value was nil");
- *nextValue++ = [value doubleValue];
- break;
-
- case CPTTradingRangePlotFieldLow:
- value = [fData objectForKey:@"low"];
- NSAssert(value, @"Low value was nil");
- *nextValue++ = [value doubleValue];
- break;
-
- case CPTTradingRangePlotFieldClose:
- value = [fData objectForKey:@"close"];
- NSAssert(value, @"Close value was nil");
- *nextValue++ = [value doubleValue];
- break;
-
- default:
- break;
- }
- }
- }
- }
- else {
- NSDecimal *nextValue = data.mutableBytes;
-
- for ( int fieldEnum = 0; fieldEnum < numFields; fieldEnum++ ) {
- for ( NSUInteger i = indexRange.location; i < maxIndex; i++ ) {
- NSDictionary *fData = (NSDictionary *)[financialData objectAtIndex:financialDataCount - i - 1];
- NSNumber *value;
-
- switch ( fieldEnum ) {
- case CPTTradingRangePlotFieldX:
- *nextValue++ = CPTDecimalFromUnsignedInteger(i + 1);
- break;
-
- case CPTTradingRangePlotFieldOpen:
- value = [fData objectForKey:@"open"];
- NSAssert(value, @"Open value was nil");
- *nextValue++ = [value decimalValue];
- break;
-
- case CPTTradingRangePlotFieldHigh:
- value = [fData objectForKey:@"high"];
- NSAssert(value, @"High value was nil");
- *nextValue++ = [value decimalValue];
- break;
-
- case CPTTradingRangePlotFieldLow:
- value = [fData objectForKey:@"low"];
- NSAssert(value, @"Low value was nil");
- *nextValue++ = [value decimalValue];
- break;
-
- case CPTTradingRangePlotFieldClose:
- value = [fData objectForKey:@"close"];
- NSAssert(value, @"Close value was nil");
- *nextValue++ = [value decimalValue];
- break;
-
- default:
- break;
- }
- }
- }
- }
- }
-
- CPTMutableNumericData *numericData = [CPTMutableNumericData numericDataWithData:data
- dataType:(useDoubles ? plot.doubleDataType : plot.decimalDataType)
- shape:@[@(indexRange.length), @(numFields)]
- dataOrder:CPTDataOrderColumnsFirst];
- [data release];
-
- return numericData;
-}
-#endif
-
--(CPTLayer *)dataLabelForPlot:(CPTPlot *)plot recordIndex:(NSUInteger)index
-{
- if ( ![(NSString *)plot.identifier isEqualToString : @"OHLC"] ) {
- return (id)[NSNull null]; // Don't show any label
- }
- else if ( index % 5 ) {
- return (id)[NSNull null];
- }
- else {
- return nil; // Use default label style
- }
-}
-
--(void)dataPullerDidFinishFetch:(APYahooDataPuller *)dp
-{
- static CPTAnimationOperation *animationOperation = nil;
-
- CPTXYPlotSpace *plotSpace = (CPTXYPlotSpace *)self.graph.defaultPlotSpace;
- CPTXYPlotSpace *volumePlotSpace = (CPTXYPlotSpace *)[self.graph plotSpaceWithIdentifier:@"Volume Plot Space"];
-
- APYahooDataPuller *thePuller = self.datapuller;
-
- NSDecimalNumber *high = thePuller.overallHigh;
- NSDecimalNumber *low = thePuller.overallLow;
- NSDecimalNumber *length = [high decimalNumberBySubtracting:low];
-
- NSLog(@"high = %@, low = %@, length = %@", high, low, length);
- NSDecimalNumber *pricePlotSpaceDisplacementPercent = [NSDecimalNumber decimalNumberWithMantissa:33
- exponent:-2
- isNegative:NO];
-
- NSDecimalNumber *lengthDisplacementValue = [length decimalNumberByMultiplyingBy:pricePlotSpaceDisplacementPercent];
- NSDecimalNumber *lowDisplayLocation = [low decimalNumberBySubtracting:lengthDisplacementValue];
- NSDecimalNumber *lengthDisplayLocation = [length decimalNumberByAdding:lengthDisplacementValue];
-
- plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble(0.0) length:CPTDecimalFromUnsignedInteger(thePuller.financialData.count + 1)];
- plotSpace.yRange = [CPTPlotRange plotRangeWithLocation:lowDisplayLocation.decimalValue length:lengthDisplayLocation.decimalValue];
-
- CPTScatterPlot *linePlot = (CPTScatterPlot *)[self.graph plotWithIdentifier:@"Data Source Plot"];
- linePlot.areaBaseValue = [high decimalValue];
- linePlot.areaBaseValue2 = [low decimalValue];
-
- // Axes
- CPTXYAxisSet *axisSet = (CPTXYAxisSet *)self.graph.axisSet;
-
- NSDecimalNumber *overallVolumeHigh = thePuller.overallVolumeHigh;
- NSDecimalNumber *overallVolumeLow = thePuller.overallVolumeLow;
- NSDecimalNumber *volumeLength = [overallVolumeHigh decimalNumberBySubtracting:overallVolumeLow];
-
- // make the length aka height for y 3 times more so that we get a 1/3 area covered by volume
- NSDecimalNumber *volumePlotSpaceDisplacementPercent = [NSDecimalNumber decimalNumberWithMantissa:3
- exponent:0
- isNegative:NO];
-
- NSDecimalNumber *volumeLengthDisplacementValue = [volumeLength decimalNumberByMultiplyingBy:volumePlotSpaceDisplacementPercent];
- NSDecimalNumber *volumeLowDisplayLocation = overallVolumeLow;
- NSDecimalNumber *volumeLengthDisplayLocation = [volumeLength decimalNumberByAdding:volumeLengthDisplacementValue];
-
- volumePlotSpace.xRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble(0.0) length:CPTDecimalFromUnsignedInteger(thePuller.financialData.count + 1)];
-// volumePlotSpace.yRange = [CPTPlotRange plotRangeWithLocation:[volumeLowDisplayLocation decimalValue] length:[volumeLengthDisplayLocation decimalValue]];
-
- if ( animationOperation ) {
- [[CPTAnimation sharedInstance] removeAnimationOperation:animationOperation];
- }
-
- animationOperation = [CPTAnimation animate:volumePlotSpace
- property:@"yRange"
- fromPlotRange:[CPTPlotRange plotRangeWithLocation:[volumeLowDisplayLocation decimalValue]
- length:CPTDecimalMultiply( [volumeLengthDisplayLocation decimalValue], CPTDecimalFromInteger(10) )]
- toPlotRange:[CPTPlotRange plotRangeWithLocation:[volumeLowDisplayLocation decimalValue]
- length:[volumeLengthDisplayLocation decimalValue]]
- duration:2.5];
-
- axisSet.xAxis.orthogonalCoordinateDecimal = [low decimalValue];
- axisSet.yAxis.majorIntervalLength = CPTDecimalFromDouble(50.0);
- axisSet.yAxis.minorTicksPerInterval = 4;
- axisSet.yAxis.orthogonalCoordinateDecimal = CPTDecimalFromDouble(1.0);
- NSArray *exclusionRanges = @[[CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(0) length:[low decimalValue]]];
-
- axisSet.yAxis.labelExclusionRanges = exclusionRanges;
-
- [self.graph reloadData];
-}
-
-@end
diff --git a/examples/AAPLot/Classes/RootViewController.h b/examples/AAPLot/Classes/RootViewController.h
deleted file mode 100644
index 57e4a4988..000000000
--- a/examples/AAPLot/Classes/RootViewController.h
+++ /dev/null
@@ -1,23 +0,0 @@
-//
-// RootViewController.h
-// AAPLot
-//
-// Created by Jonathan Saggau on 6/9/09.
-// Copyright Sounds Broken inc. 2009. All rights reserved.
-//
-
-#import
-
-@class MainViewController;
-@class FlipsideViewController;
-
-@interface RootViewController : UIViewController
-
-@property (nonatomic, strong) IBOutlet UIButton *infoButton;
-@property (nonatomic, strong) MainViewController *mainViewController;
-@property (nonatomic, strong) UINavigationBar *flipsideNavigationBar;
-@property (nonatomic, strong) FlipsideViewController *flipsideViewController;
-
--(IBAction)toggleView;
-
-@end
diff --git a/examples/AAPLot/Classes/RootViewController.m b/examples/AAPLot/Classes/RootViewController.m
deleted file mode 100644
index 120ecc7a2..000000000
--- a/examples/AAPLot/Classes/RootViewController.m
+++ /dev/null
@@ -1,106 +0,0 @@
-//
-// RootViewController.m
-// AAPLot
-//
-// Created by Jonathan Saggau on 6/9/09.
-// Copyright Sounds Broken inc. 2009. All rights reserved.
-//
-
-#import "FlipsideViewController.h"
-#import "MainViewController.h"
-#import "RootViewController.h"
-
-@implementation RootViewController
-
-@synthesize infoButton;
-@synthesize flipsideNavigationBar;
-@synthesize mainViewController;
-@synthesize flipsideViewController;
-
--(void)viewDidLoad
-{
- [super viewDidLoad];
- MainViewController *viewController = [[MainViewController alloc] initWithNibName:@"MainView" bundle:nil];
- self.mainViewController = viewController;
-
- [self.view insertSubview:self.mainViewController.view belowSubview:self.infoButton];
- self.mainViewController.view.frame = self.view.bounds;
-}
-
--(void)loadFlipsideViewController
-{
- FlipsideViewController *viewController = [[FlipsideViewController alloc] initWithNibName:@"FlipsideView" bundle:nil];
-
- self.flipsideViewController = viewController;
-
- self.flipsideViewController.view.frame = self.view.bounds;
-
- // Set up the navigation bar
- UINavigationBar *aNavigationBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 44.0)];
- aNavigationBar.barStyle = UIBarStyleBlackOpaque;
- self.flipsideNavigationBar = aNavigationBar;
-
- UIBarButtonItem *buttonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
- target:self
- action:@selector(toggleView)];
- UINavigationItem *navigationItem = [[UINavigationItem alloc] initWithTitle:@"AAPLot"];
- navigationItem.rightBarButtonItem = buttonItem;
- [self.flipsideNavigationBar pushNavigationItem:navigationItem animated:NO];
-}
-
--(IBAction)toggleView
-{
- /*
- * This method is called when the info or Done button is pressed.
- * It flips the displayed view from the main view to the flipside view and vice-versa.
- */
- if ( self.flipsideViewController == nil ) {
- [self loadFlipsideViewController];
- }
-
- UIView *mainView = self.mainViewController.view;
- UIView *flipsideView = self.flipsideViewController.view;
-
- [UIView beginAnimations:nil context:NULL];
- [UIView setAnimationDuration:1];
- UIViewAnimationTransition transition = ([mainView superview] ? UIViewAnimationTransitionFlipFromRight : UIViewAnimationTransitionFlipFromLeft);
- [UIView setAnimationTransition:transition forView:self.view cache:YES];
-
- if ( [mainView superview] != nil ) {
- [self.flipsideViewController viewWillAppear:YES];
- [self.mainViewController viewWillDisappear:YES];
- [mainView removeFromSuperview];
- [self.infoButton removeFromSuperview];
- [self.view addSubview:flipsideView];
- [self.view insertSubview:self.flipsideNavigationBar aboveSubview:flipsideView];
- [self.mainViewController viewDidDisappear:YES];
- [self.flipsideViewController viewDidAppear:YES];
- }
- else {
- [self.mainViewController viewWillAppear:YES];
- [self.flipsideViewController viewWillDisappear:YES];
- [flipsideView removeFromSuperview];
- [self.flipsideNavigationBar removeFromSuperview];
- [self.view addSubview:mainView];
- [self.view insertSubview:self.infoButton aboveSubview:self.mainViewController.view];
- [self.flipsideViewController viewDidDisappear:YES];
- [self.mainViewController viewDidAppear:YES];
- }
- [UIView commitAnimations];
-}
-
-/*
- * // Override to allow orientations other than the default portrait orientation.
- * - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
- * // Return YES for supported orientations
- * return (interfaceOrientation == UIInterfaceOrientationPortrait);
- * }
- */
-
--(void)didReceiveMemoryWarning
-{
- [super didReceiveMemoryWarning]; // Releases the view if it doesn't have a superview
- // Release anything that's not essential, such as cached data
-}
-
-@end
diff --git a/examples/AAPLot/FlipsideView.xib b/examples/AAPLot/FlipsideView.xib
deleted file mode 100644
index 165ced2e7..000000000
--- a/examples/AAPLot/FlipsideView.xib
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/examples/AAPLot/Launch Screen.xib b/examples/AAPLot/Launch Screen.xib
deleted file mode 100644
index f8672842a..000000000
--- a/examples/AAPLot/Launch Screen.xib
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/examples/AAPLot/MainView.xib b/examples/AAPLot/MainView.xib
deleted file mode 100644
index e968aa1ef..000000000
--- a/examples/AAPLot/MainView.xib
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/examples/AAPLot/MainWindow.xib b/examples/AAPLot/MainWindow.xib
deleted file mode 100644
index 182fe85d1..000000000
--- a/examples/AAPLot/MainWindow.xib
+++ /dev/null
@@ -1,60 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/examples/AAPLot/NSDateFormatterExtensions.h b/examples/AAPLot/NSDateFormatterExtensions.h
deleted file mode 100644
index 2deb1696c..000000000
--- a/examples/AAPLot/NSDateFormatterExtensions.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#import
-
-@interface NSDateFormatter(APExtensions)
-
-+(NSDateFormatter *)csvDateFormatter;
-
-@end
diff --git a/examples/AAPLot/NSDateFormatterExtensions.m b/examples/AAPLot/NSDateFormatterExtensions.m
deleted file mode 100644
index 9bb5989a1..000000000
--- a/examples/AAPLot/NSDateFormatterExtensions.m
+++ /dev/null
@@ -1,18 +0,0 @@
-#import "NSDateFormatterExtensions.h"
-
-@implementation NSDateFormatter(APExtensions)
-
-+(NSDateFormatter *)csvDateFormatter
-{
- static NSDateFormatter *df = nil;
- static dispatch_once_t onceToken = 0;
-
- dispatch_once(&onceToken, ^{
- df = [[NSDateFormatter alloc] init];
- [df setDateFormat:@"yyyy-MM-dd"];
- });
-
- return df;
-}
-
-@end
diff --git a/examples/AAPLot/main.m b/examples/AAPLot/main.m
deleted file mode 100644
index 9098265c6..000000000
--- a/examples/AAPLot/main.m
+++ /dev/null
@@ -1,10 +0,0 @@
-#import
-
-int main(int argc, char *argv[])
-{
- @autoreleasepool {
- int retVal = UIApplicationMain(argc, argv, nil, nil);
-
- return retVal;
- }
-}
diff --git a/examples/CPTTestApp-iPad/CPTTestApp_iPad-Info.plist b/examples/CPTTestApp-iPad/Base.lproj/CPTTestApp_iPad-Info.plist
similarity index 95%
rename from examples/CPTTestApp-iPad/CPTTestApp_iPad-Info.plist
rename to examples/CPTTestApp-iPad/Base.lproj/CPTTestApp_iPad-Info.plist
index f0cf9adbd..65b56f8c5 100644
--- a/examples/CPTTestApp-iPad/CPTTestApp_iPad-Info.plist
+++ b/examples/CPTTestApp-iPad/Base.lproj/CPTTestApp_iPad-Info.plist
@@ -18,6 +18,8 @@
${PRODUCT_NAME}
CFBundlePackageType
APPL
+ CFBundleShortVersionString
+ 1.0
CFBundleSignature
????
CFBundleVersion
diff --git a/examples/CPTTestApp-iPad/Base.lproj/CPTTestApp_iPadViewController.xib b/examples/CPTTestApp-iPad/Base.lproj/CPTTestApp_iPadViewController.xib
new file mode 100644
index 000000000..03311ea1e
--- /dev/null
+++ b/examples/CPTTestApp-iPad/Base.lproj/CPTTestApp_iPadViewController.xib
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/examples/CPTTestApp-iPad/Launch Screen.xib b/examples/CPTTestApp-iPad/Base.lproj/Launch Screen.xib
similarity index 66%
rename from examples/CPTTestApp-iPad/Launch Screen.xib
rename to examples/CPTTestApp-iPad/Base.lproj/Launch Screen.xib
index 31b1b876d..84090add7 100644
--- a/examples/CPTTestApp-iPad/Launch Screen.xib
+++ b/examples/CPTTestApp-iPad/Base.lproj/Launch Screen.xib
@@ -1,8 +1,12 @@
-
-
+
+
+
+
+
-
-
+
+
+
@@ -11,14 +15,14 @@
-
-
+
diff --git a/examples/CPTTestApp-iPad/Base.lproj/MainWindow.xib b/examples/CPTTestApp-iPad/Base.lproj/MainWindow.xib
new file mode 100644
index 000000000..9e25633e1
--- /dev/null
+++ b/examples/CPTTestApp-iPad/Base.lproj/MainWindow.xib
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/examples/CPTTestApp-iPad/CPTTestApp-iPad.xcodeproj/project.pbxproj b/examples/CPTTestApp-iPad/CPTTestApp-iPad.xcodeproj/project.pbxproj
index f8b46b37d..afd032e09 100644
--- a/examples/CPTTestApp-iPad/CPTTestApp-iPad.xcodeproj/project.pbxproj
+++ b/examples/CPTTestApp-iPad/CPTTestApp-iPad.xcodeproj/project.pbxproj
@@ -3,7 +3,7 @@
archiveVersion = 1;
classes = {
};
- objectVersion = 46;
+ objectVersion = 47;
objects = {
/* Begin PBXBuildFile section */
@@ -12,33 +12,74 @@
1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; };
1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; };
288765A50DF7441C002DB57D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765A40DF7441C002DB57D /* CoreGraphics.framework */; };
- 2899E5220DE3E06400AC0155 /* CPTTestApp_iPadViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2899E5210DE3E06400AC0155 /* CPTTestApp_iPadViewController.xib */; };
- 28AD733F0D9D9553002E5188 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 28AD733E0D9D9553002E5188 /* MainWindow.xib */; };
28D7ACF80DDB3853001CB0EB /* CPTTestApp_iPadViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 28D7ACF70DDB3853001CB0EB /* CPTTestApp_iPadViewController.m */; };
- BC65753F11653FC60008F594 /* libCorePlot-CocoaTouch.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BC65753611653F8A0008F594 /* libCorePlot-CocoaTouch.a */; };
BC65758F116549890008F594 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BC65758E116549890008F594 /* QuartzCore.framework */; };
- C34677AE19F3341700429A85 /* Launch Screen.xib in Resources */ = {isa = PBXBuildFile; fileRef = C34677AD19F3341700429A85 /* Launch Screen.xib */; };
- C3CD283917DE9C59008EED1E /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C3CD283817DE9C59008EED1E /* Accelerate.framework */; };
+ C3D0A1F520E019BF00BA2921 /* CPTTestApp_iPadViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = C3D0A1F720E019BF00BA2921 /* CPTTestApp_iPadViewController.xib */; };
+ C3D0A20620E019CD00BA2921 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = C3D0A20820E019CD00BA2921 /* MainWindow.xib */; };
+ C3D0A20920E019D400BA2921 /* Launch Screen.xib in Resources */ = {isa = PBXBuildFile; fileRef = C3D0A20B20E019D400BA2921 /* Launch Screen.xib */; };
C3D3936019FD670400148319 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C3D3935F19FD670400148319 /* Images.xcassets */; };
+ C3D414AD1A7D844400B6F5D6 /* libCorePlot-CocoaTouch.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C3D414AA1A7D843800B6F5D6 /* libCorePlot-CocoaTouch.a */; };
C3F47B6E17BF99DE0075181F /* CorePlotIcon.png in Resources */ = {isa = PBXBuildFile; fileRef = C3F47B6C17BF99DE0075181F /* CorePlotIcon.png */; };
C3F47B6F17BF99DE0075181F /* CorePlotIcon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C3F47B6D17BF99DE0075181F /* CorePlotIcon@2x.png */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
- BC65753511653F8A0008F594 /* PBXContainerItemProxy */ = {
+ C31D01E01D10F4FF008C1EF2 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
- containerPortal = BC65753011653F8A0008F594 /* CorePlot-CocoaTouch.xcodeproj */;
+ containerPortal = C3D414951A7D843800B6F5D6 /* CorePlot.xcodeproj */;
proxyType = 2;
- remoteGlobalIDString = BC9B83470FB8A0A40035D8DA;
- remoteInfo = "CorePlot-CocoaTouch";
+ remoteGlobalIDString = C37EA6921BC83F2A0091C8F7;
+ remoteInfo = "CorePlot tvOS";
+ };
+ C31D01E21D10F4FF008C1EF2 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = C3D414951A7D843800B6F5D6 /* CorePlot.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = C37EA6B71BC83F2D0091C8F7;
+ remoteInfo = "UnitTests tvOS";
+ };
+ C3D414A11A7D843800B6F5D6 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = C3D414951A7D843800B6F5D6 /* CorePlot.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = 8DC2EF5B0486A6940098B216;
+ remoteInfo = CorePlot;
+ };
+ C3D414A31A7D843800B6F5D6 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = C3D414951A7D843800B6F5D6 /* CorePlot.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = 0730F600109492D800E95162;
+ remoteInfo = UnitTests;
+ };
+ C3D414A51A7D843800B6F5D6 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = C3D414951A7D843800B6F5D6 /* CorePlot.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = C38A09781A46185200D45436;
+ remoteInfo = CorePlot_iOS;
+ };
+ C3D414A71A7D843800B6F5D6 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = C3D414951A7D843800B6F5D6 /* CorePlot.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = C38A09821A46185300D45436;
+ remoteInfo = CorePlot_iOSTests;
};
- BC65753711653FA50008F594 /* PBXContainerItemProxy */ = {
+ C3D414A91A7D843800B6F5D6 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
- containerPortal = BC65753011653F8A0008F594 /* CorePlot-CocoaTouch.xcodeproj */;
- proxyType = 1;
- remoteGlobalIDString = BC9B83460FB8A0A40035D8DA;
+ containerPortal = C3D414951A7D843800B6F5D6 /* CorePlot.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = C38A09BA1A4619A900D45436;
remoteInfo = "CorePlot-CocoaTouch";
};
+ C3D414AB1A7D843800B6F5D6 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = C3D414951A7D843800B6F5D6 /* CorePlot.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = C38A09C41A4619A900D45436;
+ remoteInfo = "CorePlot-CocoaTouchTests";
+ };
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
@@ -48,19 +89,19 @@
1D6058910D05DD3D006BFB54 /* CPTTestApp-iPad.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "CPTTestApp-iPad.app"; sourceTree = BUILT_PRODUCTS_DIR; };
1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
288765A40DF7441C002DB57D /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
- 2899E5210DE3E06400AC0155 /* CPTTestApp_iPadViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = CPTTestApp_iPadViewController.xib; sourceTree = ""; };
- 28AD733E0D9D9553002E5188 /* MainWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MainWindow.xib; sourceTree = ""; };
- 28D7ACF60DDB3853001CB0EB /* CPTTestApp_iPadViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CPTTestApp_iPadViewController.h; sourceTree = ""; };
- 28D7ACF70DDB3853001CB0EB /* CPTTestApp_iPadViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CPTTestApp_iPadViewController.m; sourceTree = ""; };
+ 28D7ACF60DDB3853001CB0EB /* CPTTestApp_iPadViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = CPTTestApp_iPadViewController.h; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };
+ 28D7ACF70DDB3853001CB0EB /* CPTTestApp_iPadViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = CPTTestApp_iPadViewController.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; };
32CA4F630368D1EE00C91783 /* CPTTestApp_iPad_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CPTTestApp_iPad_Prefix.pch; sourceTree = ""; };
- 8D1107310486CEB800E47090 /* CPTTestApp_iPad-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "CPTTestApp_iPad-Info.plist"; plistStructureDefinitionIdentifier = "com.apple.xcode.plist.structure-definition.iphone.info-plist"; sourceTree = ""; };
- BC65753011653F8A0008F594 /* CorePlot-CocoaTouch.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "CorePlot-CocoaTouch.xcodeproj"; path = "../../framework/CorePlot-CocoaTouch.xcodeproj"; sourceTree = SOURCE_ROOT; };
BC65758E116549890008F594 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
- C34677AD19F3341700429A85 /* Launch Screen.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = "Launch Screen.xib"; sourceTree = ""; };
- C36E7CC519DE1C1F00EDEACB /* CorePlotWarnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = CorePlotWarnings.xcconfig; path = ../../framework/CorePlotWarnings.xcconfig; sourceTree = ""; };
+ C36E7CC519DE1C1F00EDEACB /* CorePlotWarnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = CorePlotWarnings.xcconfig; path = ../../framework/xcconfig/CorePlotWarnings.xcconfig; sourceTree = ""; };
+ C37A40E120E0320500C4FF48 /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Base; path = "Base.lproj/CPTTestApp_iPad-Info.plist"; sourceTree = ""; };
C3CD283817DE9C59008EED1E /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; };
+ C3D0A20520E019C900BA2921 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/CPTTestApp_iPadViewController.xib; sourceTree = ""; };
+ C3D0A20720E019CD00BA2921 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainWindow.xib; sourceTree = ""; };
+ C3D0A20A20E019D400BA2921 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = "Base.lproj/Launch Screen.xib"; sourceTree = ""; };
C3D3935F19FD670400148319 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = "CPTTestApp-iPad/Images.xcassets"; sourceTree = ""; };
+ C3D414951A7D843800B6F5D6 /* CorePlot.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = CorePlot.xcodeproj; path = ../../framework/CorePlot.xcodeproj; sourceTree = ""; };
C3F47B6C17BF99DE0075181F /* CorePlotIcon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = CorePlotIcon.png; sourceTree = ""; };
C3F47B6D17BF99DE0075181F /* CorePlotIcon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "CorePlotIcon@2x.png"; sourceTree = ""; };
/* End PBXFileReference section */
@@ -73,9 +114,8 @@
1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */,
1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */,
288765A50DF7441C002DB57D /* CoreGraphics.framework in Frameworks */,
- BC65753F11653FC60008F594 /* libCorePlot-CocoaTouch.a in Frameworks */,
BC65758F116549890008F594 /* QuartzCore.framework in Frameworks */,
- C3CD283917DE9C59008EED1E /* Accelerate.framework in Frameworks */,
+ C3D414AD1A7D844400B6F5D6 /* libCorePlot-CocoaTouch.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -104,7 +144,7 @@
29B97314FDCFA39411CA2CEA /* CustomTemplate */ = {
isa = PBXGroup;
children = (
- BC65753011653F8A0008F594 /* CorePlot-CocoaTouch.xcodeproj */,
+ C3D414951A7D843800B6F5D6 /* CorePlot.xcodeproj */,
080E96DDFE201D6D7F000001 /* Classes */,
29B97315FDCFA39411CA2CEA /* Other Sources */,
29B97317FDCFA39411CA2CEA /* Resources */,
@@ -131,12 +171,12 @@
isa = PBXGroup;
children = (
C3D3935F19FD670400148319 /* Images.xcassets */,
- 2899E5210DE3E06400AC0155 /* CPTTestApp_iPadViewController.xib */,
- 28AD733E0D9D9553002E5188 /* MainWindow.xib */,
- C34677AD19F3341700429A85 /* Launch Screen.xib */,
+ C3D0A1F720E019BF00BA2921 /* CPTTestApp_iPadViewController.xib */,
+ C3D0A20820E019CD00BA2921 /* MainWindow.xib */,
+ C3D0A20B20E019D400BA2921 /* Launch Screen.xib */,
C3F47B6C17BF99DE0075181F /* CorePlotIcon.png */,
C3F47B6D17BF99DE0075181F /* CorePlotIcon@2x.png */,
- 8D1107310486CEB800E47090 /* CPTTestApp_iPad-Info.plist */,
+ C37A40E220E0320500C4FF48 /* CPTTestApp_iPad-Info.plist */,
);
name = Resources;
sourceTree = "";
@@ -153,10 +193,17 @@
name = Frameworks;
sourceTree = "";
};
- BC65753111653F8A0008F594 /* Products */ = {
+ C3D414961A7D843800B6F5D6 /* Products */ = {
isa = PBXGroup;
children = (
- BC65753611653F8A0008F594 /* libCorePlot-CocoaTouch.a */,
+ C3D414A21A7D843800B6F5D6 /* CorePlot.framework */,
+ C3D414A41A7D843800B6F5D6 /* UnitTests.xctest */,
+ C3D414A61A7D843800B6F5D6 /* CorePlot.framework */,
+ C3D414A81A7D843800B6F5D6 /* UnitTests iOS.xctest */,
+ C3D414AA1A7D843800B6F5D6 /* libCorePlot-CocoaTouch.a */,
+ C3D414AC1A7D843800B6F5D6 /* CorePlot-CocoaTouchTests.xctest */,
+ C31D01E11D10F4FF008C1EF2 /* CorePlot.framework */,
+ C31D01E31D10F4FF008C1EF2 /* UnitTests tvOS.xctest */,
);
name = Products;
sourceTree = "";
@@ -175,7 +222,6 @@
buildRules = (
);
dependencies = (
- BC65753811653FA50008F594 /* PBXTargetDependency */,
);
name = "CPTTestApp-iPad";
productName = "CPTTestApp-iPad";
@@ -188,24 +234,30 @@
29B97313FDCFA39411CA2CEA /* Project object */ = {
isa = PBXProject;
attributes = {
- LastUpgradeCheck = 0700;
+ LastUpgradeCheck = 0900;
+ TargetAttributes = {
+ 1D6058900D05DD3D006BFB54 = {
+ DevelopmentTeam = 28ZA45DE7D;
+ };
+ };
};
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "CPTTestApp-iPad" */;
- compatibilityVersion = "Xcode 3.2";
- developmentRegion = English;
+ compatibilityVersion = "Xcode 6.3";
+ developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (
- English,
- Japanese,
- French,
- German,
+ Base,
+ ja,
+ en,
+ de,
+ fr,
);
mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */;
projectDirPath = "";
projectReferences = (
{
- ProductGroup = BC65753111653F8A0008F594 /* Products */;
- ProjectRef = BC65753011653F8A0008F594 /* CorePlot-CocoaTouch.xcodeproj */;
+ ProductGroup = C3D414961A7D843800B6F5D6 /* Products */;
+ ProjectRef = C3D414951A7D843800B6F5D6 /* CorePlot.xcodeproj */;
},
);
projectRoot = "";
@@ -216,11 +268,60 @@
/* End PBXProject section */
/* Begin PBXReferenceProxy section */
- BC65753611653F8A0008F594 /* libCorePlot-CocoaTouch.a */ = {
+ C31D01E11D10F4FF008C1EF2 /* CorePlot.framework */ = {
+ isa = PBXReferenceProxy;
+ fileType = wrapper.framework;
+ path = CorePlot.framework;
+ remoteRef = C31D01E01D10F4FF008C1EF2 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ C31D01E31D10F4FF008C1EF2 /* UnitTests tvOS.xctest */ = {
+ isa = PBXReferenceProxy;
+ fileType = wrapper.cfbundle;
+ path = "UnitTests tvOS.xctest";
+ remoteRef = C31D01E21D10F4FF008C1EF2 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ C3D414A21A7D843800B6F5D6 /* CorePlot.framework */ = {
+ isa = PBXReferenceProxy;
+ fileType = wrapper.framework;
+ path = CorePlot.framework;
+ remoteRef = C3D414A11A7D843800B6F5D6 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ C3D414A41A7D843800B6F5D6 /* UnitTests.xctest */ = {
+ isa = PBXReferenceProxy;
+ fileType = wrapper.cfbundle;
+ path = UnitTests.xctest;
+ remoteRef = C3D414A31A7D843800B6F5D6 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ C3D414A61A7D843800B6F5D6 /* CorePlot.framework */ = {
+ isa = PBXReferenceProxy;
+ fileType = wrapper.framework;
+ path = CorePlot.framework;
+ remoteRef = C3D414A51A7D843800B6F5D6 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ C3D414A81A7D843800B6F5D6 /* UnitTests iOS.xctest */ = {
+ isa = PBXReferenceProxy;
+ fileType = wrapper.cfbundle;
+ path = "UnitTests iOS.xctest";
+ remoteRef = C3D414A71A7D843800B6F5D6 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ C3D414AA1A7D843800B6F5D6 /* libCorePlot-CocoaTouch.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = "libCorePlot-CocoaTouch.a";
- remoteRef = BC65753511653F8A0008F594 /* PBXContainerItemProxy */;
+ remoteRef = C3D414A91A7D843800B6F5D6 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ C3D414AC1A7D843800B6F5D6 /* CorePlot-CocoaTouchTests.xctest */ = {
+ isa = PBXReferenceProxy;
+ fileType = wrapper.cfbundle;
+ path = "CorePlot-CocoaTouchTests.xctest";
+ remoteRef = C3D414AB1A7D843800B6F5D6 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
/* End PBXReferenceProxy section */
@@ -230,12 +331,12 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
- 28AD733F0D9D9553002E5188 /* MainWindow.xib in Resources */,
- 2899E5220DE3E06400AC0155 /* CPTTestApp_iPadViewController.xib in Resources */,
+ C3D0A20620E019CD00BA2921 /* MainWindow.xib in Resources */,
+ C3D0A1F520E019BF00BA2921 /* CPTTestApp_iPadViewController.xib in Resources */,
C3F47B6E17BF99DE0075181F /* CorePlotIcon.png in Resources */,
C3D3936019FD670400148319 /* Images.xcassets in Resources */,
C3F47B6F17BF99DE0075181F /* CorePlotIcon@2x.png in Resources */,
- C34677AE19F3341700429A85 /* Launch Screen.xib in Resources */,
+ C3D0A20920E019D400BA2921 /* Launch Screen.xib in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -254,17 +355,45 @@
};
/* End PBXSourcesBuildPhase section */
-/* Begin PBXTargetDependency section */
- BC65753811653FA50008F594 /* PBXTargetDependency */ = {
- isa = PBXTargetDependency;
- name = "CorePlot-CocoaTouch";
- targetProxy = BC65753711653FA50008F594 /* PBXContainerItemProxy */;
+/* Begin PBXVariantGroup section */
+ C37A40E220E0320500C4FF48 /* CPTTestApp_iPad-Info.plist */ = {
+ isa = PBXVariantGroup;
+ children = (
+ C37A40E120E0320500C4FF48 /* Base */,
+ );
+ name = "CPTTestApp_iPad-Info.plist";
+ sourceTree = "";
+ };
+ C3D0A1F720E019BF00BA2921 /* CPTTestApp_iPadViewController.xib */ = {
+ isa = PBXVariantGroup;
+ children = (
+ C3D0A20520E019C900BA2921 /* Base */,
+ );
+ name = CPTTestApp_iPadViewController.xib;
+ sourceTree = "";
+ };
+ C3D0A20820E019CD00BA2921 /* MainWindow.xib */ = {
+ isa = PBXVariantGroup;
+ children = (
+ C3D0A20720E019CD00BA2921 /* Base */,
+ );
+ name = MainWindow.xib;
+ sourceTree = "";
};
-/* End PBXTargetDependency section */
+ C3D0A20B20E019D400BA2921 /* Launch Screen.xib */ = {
+ isa = PBXVariantGroup;
+ children = (
+ C3D0A20A20E019D400BA2921 /* Base */,
+ );
+ name = "Launch Screen.xib";
+ sourceTree = "";
+ };
+/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
1D6058940D05DD3E006BFB54 /* Debug */ = {
isa = XCBuildConfiguration;
+ baseConfigurationReference = C36E7CC519DE1C1F00EDEACB /* CorePlotWarnings.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
@@ -273,12 +402,12 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
+ DEVELOPMENT_TEAM = 28ZA45DE7D;
GCC_DYNAMIC_NO_PIC = NO;
- GCC_OPTIMIZATION_LEVEL = 0;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = CPTTestApp_iPad_Prefix.pch;
HEADER_SEARCH_PATHS = "";
- INFOPLIST_FILE = "CPTTestApp_iPad-Info.plist";
+ INFOPLIST_FILE = "$(SRCROOT)/Base.lproj/CPTTestApp_iPad-Info.plist";
PRODUCT_BUNDLE_IDENTIFIER = org.CorePlot.CPTTestAppiPad;
PRODUCT_NAME = "CPTTestApp-iPad";
};
@@ -286,6 +415,7 @@
};
1D6058950D05DD3E006BFB54 /* Release */ = {
isa = XCBuildConfiguration;
+ baseConfigurationReference = C36E7CC519DE1C1F00EDEACB /* CorePlotWarnings.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
@@ -294,10 +424,11 @@
CODE_SIGN_IDENTITY = "iPhone Distribution";
"CODE_SIGN_IDENTITY[sdk=*]" = "iPhone Distribution";
COPY_PHASE_STRIP = YES;
+ DEVELOPMENT_TEAM = 28ZA45DE7D;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = CPTTestApp_iPad_Prefix.pch;
HEADER_SEARCH_PATHS = "";
- INFOPLIST_FILE = "CPTTestApp_iPad-Info.plist";
+ INFOPLIST_FILE = "$(SRCROOT)/Base.lproj/CPTTestApp_iPad-Info.plist";
PRODUCT_BUNDLE_IDENTIFIER = org.CorePlot.CPTTestAppiPad;
PRODUCT_NAME = "CPTTestApp-iPad";
VALIDATE_PRODUCT = YES;
@@ -309,12 +440,13 @@
baseConfigurationReference = C36E7CC519DE1C1F00EDEACB /* CorePlotWarnings.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = c99;
- GCC_WARN_ABOUT_RETURN_TYPE = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_OPTIMIZATION_LEVEL = 0;
HEADER_SEARCH_PATHS = "";
- IPHONEOS_DEPLOYMENT_TARGET = 6.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 8.0;
ONLY_ACTIVE_ARCH = YES;
OTHER_LDFLAGS = (
"-ObjC",
@@ -323,7 +455,7 @@
SDKROOT = iphoneos;
SYMROOT = "$(SRCROOT)/../../build";
TARGETED_DEVICE_FAMILY = 2;
- USER_HEADER_SEARCH_PATHS = "\"${PROJECT_DIR}/../../framework\"/**";
+ USER_HEADER_SEARCH_PATHS = "\"${PROJECT_DIR}/../../framework\" \"${PROJECT_DIR}/../../framework/Source\" \"${PROJECT_DIR}/../../framework/iPhoneOnly\"";
};
name = Debug;
};
@@ -332,11 +464,12 @@
baseConfigurationReference = C36E7CC519DE1C1F00EDEACB /* CorePlotWarnings.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
GCC_C_LANGUAGE_STANDARD = c99;
- GCC_WARN_ABOUT_RETURN_TYPE = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_OPTIMIZATION_LEVEL = s;
HEADER_SEARCH_PATHS = "";
- IPHONEOS_DEPLOYMENT_TARGET = 6.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 8.0;
OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
OTHER_LDFLAGS = (
"-ObjC",
@@ -345,7 +478,7 @@
SDKROOT = iphoneos;
SYMROOT = "$(SRCROOT)/../../build";
TARGETED_DEVICE_FAMILY = 2;
- USER_HEADER_SEARCH_PATHS = "\"${PROJECT_DIR}/../../framework\"/**";
+ USER_HEADER_SEARCH_PATHS = "\"${PROJECT_DIR}/../../framework\" \"${PROJECT_DIR}/../../framework/Source\" \"${PROJECT_DIR}/../../framework/iPhoneOnly\"";
};
name = Release;
};
diff --git a/examples/CPTTestApp-iPad/CPTTestApp-iPad.xcodeproj/xcshareddata/xcschemes/CPTTestApp-iPad.xcscheme b/examples/CPTTestApp-iPad/CPTTestApp-iPad.xcodeproj/xcshareddata/xcschemes/CPTTestApp-iPad.xcscheme
new file mode 100644
index 000000000..8ee44490d
--- /dev/null
+++ b/examples/CPTTestApp-iPad/CPTTestApp-iPad.xcodeproj/xcshareddata/xcschemes/CPTTestApp-iPad.xcscheme
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/examples/CPTTestApp-iPad/CPTTestApp-iPad/Images.xcassets/AppIcon.appiconset/Contents.json b/examples/CPTTestApp-iPad/CPTTestApp-iPad/Images.xcassets/AppIcon.appiconset/Contents.json
index 9423e2f5b..80abb1d7e 100644
--- a/examples/CPTTestApp-iPad/CPTTestApp-iPad/Images.xcassets/AppIcon.appiconset/Contents.json
+++ b/examples/CPTTestApp-iPad/CPTTestApp-iPad/Images.xcassets/AppIcon.appiconset/Contents.json
@@ -1,5 +1,15 @@
{
"images" : [
+ {
+ "idiom" : "ipad",
+ "size" : "20x20",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "ipad",
+ "size" : "20x20",
+ "scale" : "2x"
+ },
{
"size" : "29x29",
"idiom" : "ipad",
@@ -59,6 +69,18 @@
"idiom" : "ipad",
"filename" : "Icon-76@2x.png",
"scale" : "2x"
+ },
+ {
+ "size" : "83.5x83.5",
+ "idiom" : "ipad",
+ "filename" : "Icon-iPadPro@2x.png",
+ "scale" : "2x"
+ },
+ {
+ "size" : "1024x1024",
+ "idiom" : "ios-marketing",
+ "filename" : "iTunesArtwork.png",
+ "scale" : "1x"
}
],
"info" : {
diff --git a/examples/CPTTestApp-iPad/CPTTestApp-iPad/Images.xcassets/AppIcon.appiconset/Icon-iPadPro@2x.png b/examples/CPTTestApp-iPad/CPTTestApp-iPad/Images.xcassets/AppIcon.appiconset/Icon-iPadPro@2x.png
new file mode 100644
index 000000000..594df78ef
Binary files /dev/null and b/examples/CPTTestApp-iPad/CPTTestApp-iPad/Images.xcassets/AppIcon.appiconset/Icon-iPadPro@2x.png differ
diff --git a/examples/CPTTestApp-iPad/CPTTestApp-iPad/Images.xcassets/AppIcon.appiconset/iTunesArtwork.png b/examples/CPTTestApp-iPad/CPTTestApp-iPad/Images.xcassets/AppIcon.appiconset/iTunesArtwork.png
new file mode 100644
index 000000000..969aff8dd
Binary files /dev/null and b/examples/CPTTestApp-iPad/CPTTestApp-iPad/Images.xcassets/AppIcon.appiconset/iTunesArtwork.png differ
diff --git a/examples/CPTTestApp-iPad/CPTTestApp_iPadViewController.xib b/examples/CPTTestApp-iPad/CPTTestApp_iPadViewController.xib
deleted file mode 100644
index e2254d8ae..000000000
--- a/examples/CPTTestApp-iPad/CPTTestApp_iPadViewController.xib
+++ /dev/null
@@ -1,263 +0,0 @@
-
-
-
- 1536
- 12C60
- 2843
- 1187.34
- 625.00
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- 1929
-
-
- YES
- IBProxyObject
- IBUIToolbar
- IBUIView
-
-
- YES
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
- PluginDependencyRecalculationVersion
-
-
-
- YES
-
- IBFilesOwner
- IBIPadFramework
-
-
- IBFirstResponder
- IBIPadFramework
-
-
-
- 274
-
- YES
-
-
- 292
- {{20, 55}, {728, 556}}
-
-
- 3
- MQA
-
- IBIPadFramework
-
-
-
- 292
- {{408, 644}, {340, 340}}
-
-
- 3
- MQA
-
- 2
-
-
- IBIPadFramework
-
-
-
- 292
- {{20, 644}, {340, 340}}
-
-
- 3
- MQA
-
-
- IBIPadFramework
-
-
-
- 290
- {768, 44}
-
- NO
- NO
- IBIPadFramework
- 1
-
- YES
-
-
-
- {{0, 20}, {768, 1004}}
-
-
- 1
- MCAwIDAAA
- darkTextColor
-
-
- 2
-
- IBIPadFramework
-
-
-
-
- YES
-
-
- view
-
-
-
- 3
-
-
-
- barChartView
-
-
-
- 9
-
-
-
- pieChartView
-
-
-
- 10
-
-
-
- scatterPlotView
-
-
-
- 12
-
-
-
-
- YES
-
- 0
-
- YES
-
-
-
-
-
- -1
-
-
- File's Owner
-
-
- -2
-
-
-
-
- 2
-
-
- YES
-
-
-
-
-
-
-
-
- 4
-
-
-
-
- 5
-
-
-
-
- 6
-
-
-
-
- 7
-
-
- YES
-
-
-
-
-
-
- YES
-
- YES
- -1.CustomClassName
- -1.IBPluginDependency
- -2.CustomClassName
- -2.IBPluginDependency
- 2.IBPluginDependency
- 4.CustomClassName
- 4.IBPluginDependency
- 5.CustomClassName
- 5.IBPluginDependency
- 6.CustomClassName
- 6.IBPluginDependency
- 7.IBPluginDependency
-
-
- YES
- CPTTestApp_iPadViewController
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- UIResponder
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- CPTGraphHostingView
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- CPTGraphHostingView
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- CPTGraphHostingView
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
-
- YES
-
-
-
-
-
- YES
-
-
-
-
- 12
-
-
- 0
- IBIPadFramework
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
-
-
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3
-
-
- YES
- 3
- 1929
-
-
diff --git a/examples/CPTTestApp-iPad/Classes/CPTTestApp_iPadAppDelegate.h b/examples/CPTTestApp-iPad/Classes/CPTTestApp_iPadAppDelegate.h
index 8ba37367e..728b16a7b 100644
--- a/examples/CPTTestApp-iPad/Classes/CPTTestApp_iPadAppDelegate.h
+++ b/examples/CPTTestApp-iPad/Classes/CPTTestApp_iPadAppDelegate.h
@@ -1,8 +1,8 @@
//
-// CPTTestApp_iPadAppDelegate.h
-// CPTTestApp-iPad
+// CPTTestApp_iPadAppDelegate.h
+// CPTTestApp-iPad
//
-// Created by Brad Larson on 4/1/2010.
+// Created by Brad Larson on 4/1/2010.
//
#import
@@ -11,7 +11,7 @@
@interface CPTTestApp_iPadAppDelegate : NSObject
-@property (nonatomic, readwrite, strong) IBOutlet UIWindow *window;
-@property (nonatomic, readwrite, strong) IBOutlet CPTTestApp_iPadViewController *viewController;
+@property (nonatomic, readwrite, strong, nullable) IBOutlet UIWindow *window;
+@property (nonatomic, readwrite, strong, nullable) IBOutlet CPTTestApp_iPadViewController *viewController;
@end
diff --git a/examples/CPTTestApp-iPad/Classes/CPTTestApp_iPadAppDelegate.m b/examples/CPTTestApp-iPad/Classes/CPTTestApp_iPadAppDelegate.m
index b8a47d016..b3c3e65b8 100644
--- a/examples/CPTTestApp-iPad/Classes/CPTTestApp_iPadAppDelegate.m
+++ b/examples/CPTTestApp-iPad/Classes/CPTTestApp_iPadAppDelegate.m
@@ -1,8 +1,8 @@
//
-// CPTTestApp_iPadAppDelegate.m
-// CPTTestApp-iPad
+// CPTTestApp_iPadAppDelegate.m
+// CPTTestApp-iPad
//
-// Created by Brad Larson on 4/1/2010.
+// Created by Brad Larson on 4/1/2010.
//
#import "CPTTestApp_iPadAppDelegate.h"
@@ -13,7 +13,7 @@ @implementation CPTTestApp_iPadAppDelegate
@synthesize window;
@synthesize viewController;
--(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
+-(BOOL)application:(nonnull UIApplication *__unused)application didFinishLaunchingWithOptions:(nullable CPTDictionary *__unused)launchOptions
{
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
diff --git a/examples/CPTTestApp-iPad/Classes/CPTTestApp_iPadViewController.h b/examples/CPTTestApp-iPad/Classes/CPTTestApp_iPadViewController.h
index 62596a8b6..120d9fbf3 100644
--- a/examples/CPTTestApp-iPad/Classes/CPTTestApp_iPadViewController.h
+++ b/examples/CPTTestApp-iPad/Classes/CPTTestApp_iPadViewController.h
@@ -1,17 +1,20 @@
//
-// CPTTestApp_iPadViewController.h
-// CPTTestApp-iPad
+// CPTTestApp_iPadViewController.h
+// CPTTestApp-iPad
//
-// Created by Brad Larson on 4/1/2010.
+// Created by Brad Larson on 4/1/2010.
//
#import "CorePlot-CocoaTouch.h"
#import
-@interface CPTTestApp_iPadViewController : UIViewController
+@interface CPTTestApp_iPadViewController : UIViewController
-@property (nonatomic, readwrite, strong) NSArray *dataForChart;
-@property (nonatomic, readwrite, strong) NSArray *dataForPlot;
+@property (nonatomic, readwrite, strong, nonnull) CPTNumberArray *dataForChart;
+@property (nonatomic, readwrite, strong, nonnull) NSArray *dataForPlot;
// Plot construction methods
-(void)constructScatterPlot;
diff --git a/examples/CPTTestApp-iPad/Classes/CPTTestApp_iPadViewController.m b/examples/CPTTestApp-iPad/Classes/CPTTestApp_iPadViewController.m
index b047c5eef..4312843d4 100644
--- a/examples/CPTTestApp-iPad/Classes/CPTTestApp_iPadViewController.m
+++ b/examples/CPTTestApp-iPad/Classes/CPTTestApp_iPadViewController.m
@@ -1,8 +1,8 @@
//
-// CPTTestApp_iPadViewController.m
-// CPTTestApp-iPad
+// CPTTestApp_iPadViewController.m
+// CPTTestApp-iPad
//
-// Created by Brad Larson on 4/1/2010.
+// Created by Brad Larson on 4/1/2010.
//
#import "CPTTestApp_iPadViewController.h"
@@ -10,15 +10,15 @@
@interface CPTTestApp_iPadViewController()
-@property (nonatomic, readwrite, strong) IBOutlet CPTGraphHostingView *scatterPlotView;
-@property (nonatomic, readwrite, strong) IBOutlet CPTGraphHostingView *barChartView;
-@property (nonatomic, readwrite, strong) IBOutlet CPTGraphHostingView *pieChartView;
+@property (nonatomic, readwrite, strong, nullable) IBOutlet CPTGraphHostingView *scatterPlotView;
+@property (nonatomic, readwrite, strong, nullable) IBOutlet CPTGraphHostingView *barChartView;
+@property (nonatomic, readwrite, strong, nullable) IBOutlet CPTGraphHostingView *pieChartView;
-@property (nonatomic, readwrite, strong) CPTXYGraph *graph;
-@property (nonatomic, readwrite, strong) CPTXYGraph *barChart;
-@property (nonatomic, readwrite, strong) CPTXYGraph *pieGraph;
+@property (nonatomic, readwrite, strong, nonnull) CPTXYGraph *graph;
+@property (nonatomic, readwrite, strong, nonnull) CPTXYGraph *barChart;
+@property (nonatomic, readwrite, strong, nonnull) CPTXYGraph *pieGraph;
-@property (nonatomic, readwrite, strong) CPTPieChart *piePlot;
+@property (nonatomic, readwrite, strong, nonnull) CPTPieChart *piePlot;
@property (nonatomic, readwrite, assign) BOOL piePlotIsRotating;
@end
@@ -70,36 +70,12 @@ -(void)viewDidAppear:(BOOL)animated
self.piePlotIsRotating = YES;
}
--(void)animationDidStop:(CAAnimation *)theAnimation finished:(BOOL)flag
+-(void)animationDidStop:(CAAnimation *__unused)theAnimation finished:(BOOL __unused)flag
{
self.piePlotIsRotating = NO;
[self.piePlot performSelector:@selector(reloadData) withObject:nil afterDelay:0.4];
}
--(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
-{
- if ( UIInterfaceOrientationIsLandscape(fromInterfaceOrientation) ) {
- // Move the plots into place for portrait
- self.scatterPlotView.frame = CGRectMake(20.0, 55.0, 728.0, 556.0);
- self.barChartView.frame = CGRectMake(20.0, 644.0, 340.0, 340.0);
- self.pieChartView.frame = CGRectMake(408.0, 644.0, 340.0, 340.0);
- }
- else {
- // Move the plots into place for landscape
- self.scatterPlotView.frame = CGRectMake(20.0, 51.0, 628.0, 677.0);
- self.barChartView.frame = CGRectMake(684.0, 51.0, 320.0, 320.0);
- self.pieChartView.frame = CGRectMake(684.0, 408.0, 320.0, 320.0);
- }
-}
-
--(void)didReceiveMemoryWarning
-{
- // Releases the view if it doesn't have a superview.
- [super didReceiveMemoryWarning];
-
- // Release any cached data, images, etc that aren't in use.
-}
-
#pragma mark -
#pragma mark Plot construction methods
@@ -121,27 +97,27 @@ -(void)constructScatterPlot
// Setup plot space
CPTXYPlotSpace *plotSpace = (CPTXYPlotSpace *)newGraph.defaultPlotSpace;
plotSpace.allowsUserInteraction = YES;
- plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble(1.0) length:CPTDecimalFromDouble(2.0)];
- plotSpace.yRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble(1.0) length:CPTDecimalFromDouble(3.0)];
+ plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:@1.0 length:@2.0];
+ plotSpace.yRange = [CPTPlotRange plotRangeWithLocation:@1.0 length:@3.0];
// Axes
CPTXYAxisSet *axisSet = (CPTXYAxisSet *)newGraph.axisSet;
CPTXYAxis *x = axisSet.xAxis;
- x.majorIntervalLength = CPTDecimalFromDouble(0.5);
- x.orthogonalCoordinateDecimal = CPTDecimalFromDouble(2.0);
- x.minorTicksPerInterval = 2;
- NSArray *exclusionRanges = @[[CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble(1.99) length:CPTDecimalFromDouble(0.02)],
- [CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble(0.99) length:CPTDecimalFromDouble(0.02)],
- [CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble(2.99) length:CPTDecimalFromDouble(0.02)]];
+ x.majorIntervalLength = @0.5;
+ x.orthogonalPosition = @2.0;
+ x.minorTicksPerInterval = 2;
+ CPTPlotRangeArray *exclusionRanges = @[[CPTPlotRange plotRangeWithLocation:@1.99 length:@0.02],
+ [CPTPlotRange plotRangeWithLocation:@0.99 length:@0.02],
+ [CPTPlotRange plotRangeWithLocation:@2.99 length:@0.02]];
x.labelExclusionRanges = exclusionRanges;
CPTXYAxis *y = axisSet.yAxis;
- y.majorIntervalLength = CPTDecimalFromDouble(0.5);
- y.minorTicksPerInterval = 5;
- y.orthogonalCoordinateDecimal = CPTDecimalFromDouble(2.0);
- exclusionRanges = @[[CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble(1.99) length:CPTDecimalFromDouble(0.02)],
- [CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble(0.99) length:CPTDecimalFromDouble(0.02)],
- [CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble(3.99) length:CPTDecimalFromDouble(0.02)]];
+ y.majorIntervalLength = @0.5;
+ y.minorTicksPerInterval = 5;
+ y.orthogonalPosition = @2.0;
+ exclusionRanges = @[[CPTPlotRange plotRangeWithLocation:@1.99 length:@0.02],
+ [CPTPlotRange plotRangeWithLocation:@0.99 length:@0.02],
+ [CPTPlotRange plotRangeWithLocation:@3.99 length:@0.02]];
y.labelExclusionRanges = exclusionRanges;
// Create a green plot area
@@ -162,7 +138,7 @@ -(void)constructScatterPlot
areaGradient.angle = -90.0;
CPTFill *areaGradientFill = [CPTFill fillWithGradient:areaGradient];
dataSourceLinePlot.areaFill = areaGradientFill;
- dataSourceLinePlot.areaBaseValue = CPTDecimalFromDouble(1.75);
+ dataSourceLinePlot.areaBaseValue = @1.75;
// Animate in the new plot, as an example
dataSourceLinePlot.opacity = 0.0;
@@ -196,7 +172,7 @@ -(void)constructScatterPlot
areaGradient1.angle = -90.0;
areaGradientFill = [CPTFill fillWithGradient:areaGradient1];
boundLinePlot.areaFill = areaGradientFill;
- boundLinePlot.areaBaseValue = [[NSDecimalNumber zero] decimalValue];
+ boundLinePlot.areaBaseValue = @0.0;
// Add plot symbols
CPTMutableLineStyle *symbolLineStyle = [CPTMutableLineStyle lineStyle];
@@ -208,7 +184,7 @@ -(void)constructScatterPlot
boundLinePlot.plotSymbol = plotSymbol;
// Add some initial data
- NSMutableArray *contentArray = [NSMutableArray arrayWithCapacity:100];
+ NSMutableArray *contentArray = [NSMutableArray arrayWithCapacity:100];
for ( NSUInteger i = 0; i < 60; i++ ) {
NSNumber *xVal = @(1 + i * 0.05);
NSNumber *yVal = @(1.2 * arc4random() / (double)UINT32_MAX + 1.2);
@@ -219,7 +195,7 @@ -(void)constructScatterPlot
-(void)constructBarChart
{
- // Create barChart from theme
+// Create barChart from theme
CPTXYGraph *newGraph = [[CPTXYGraph alloc] initWithFrame:CGRectZero];
CPTTheme *theme = [CPTTheme themeNamed:kCPTDarkGradientTheme];
@@ -235,32 +211,32 @@ -(void)constructBarChart
newGraph.paddingRight = 20.0;
newGraph.paddingBottom = 80.0;
- // Add plot space for horizontal bar charts
+// Add plot space for horizontal bar charts
CPTXYPlotSpace *plotSpace = (CPTXYPlotSpace *)newGraph.defaultPlotSpace;
- plotSpace.yRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(0.0f) length:CPTDecimalFromFloat(300.0f)];
- plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(0.0f) length:CPTDecimalFromFloat(16.0f)];
+ plotSpace.yRange = [CPTPlotRange plotRangeWithLocation:@0.0 length:@300.0];
+ plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:@0.0 length:@16.0];
CPTXYAxisSet *axisSet = (CPTXYAxisSet *)newGraph.axisSet;
CPTXYAxis *x = axisSet.xAxis;
- x.axisLineStyle = nil;
- x.majorTickLineStyle = nil;
- x.minorTickLineStyle = nil;
- x.majorIntervalLength = CPTDecimalFromDouble(5.0);
- x.orthogonalCoordinateDecimal = CPTDecimalFromDouble(0.0);
- x.title = @"X Axis";
- x.titleLocation = CPTDecimalFromFloat(7.5f);
- x.titleOffset = 55.0;
-
- // Define some custom labels for the data elements
+ x.axisLineStyle = nil;
+ x.majorTickLineStyle = nil;
+ x.minorTickLineStyle = nil;
+ x.majorIntervalLength = @5.0;
+ x.orthogonalPosition = @0.0;
+ x.title = @"X Axis";
+ x.titleLocation = @7.5;
+ x.titleOffset = 55.0;
+
+// Define some custom labels for the data elements
x.labelRotation = CPTFloat(M_PI_4);
x.labelingPolicy = CPTAxisLabelingPolicyNone;
- NSArray *customTickLocations = @[@1, @5, @10, @15];
- NSArray *xAxisLabels = @[@"Label A", @"Label B", @"Label C", @"Label D"];
- NSUInteger labelLocation = 0;
- NSMutableSet *customLabels = [NSMutableSet setWithCapacity:[xAxisLabels count]];
+ CPTNumberArray *customTickLocations = @[@1, @5, @10, @15];
+ CPTStringArray *xAxisLabels = @[@"Label A", @"Label B", @"Label C", @"Label D"];
+ NSUInteger labelLocation = 0;
+ CPTMutableAxisLabelSet *customLabels = [NSMutableSet setWithCapacity:xAxisLabels.count];
for ( NSNumber *tickLocation in customTickLocations ) {
CPTAxisLabel *newLabel = [[CPTAxisLabel alloc] initWithText:xAxisLabels[labelLocation++] textStyle:x.labelTextStyle];
- newLabel.tickLocation = [tickLocation decimalValue];
+ newLabel.tickLocation = tickLocation;
newLabel.offset = x.labelOffset + x.majorTickLength;
newLabel.rotation = CPTFloat(M_PI_4);
[customLabels addObject:newLabel];
@@ -269,28 +245,28 @@ -(void)constructBarChart
x.axisLabels = customLabels;
CPTXYAxis *y = axisSet.yAxis;
- y.axisLineStyle = nil;
- y.majorTickLineStyle = nil;
- y.minorTickLineStyle = nil;
- y.majorIntervalLength = CPTDecimalFromDouble(50.0);
- y.orthogonalCoordinateDecimal = CPTDecimalFromDouble(0.0);
- y.title = @"Y Axis";
- y.titleOffset = 45.0;
- y.titleLocation = CPTDecimalFromFloat(150.0f);
-
- // First bar plot
+ y.axisLineStyle = nil;
+ y.majorTickLineStyle = nil;
+ y.minorTickLineStyle = nil;
+ y.majorIntervalLength = @50.0;
+ y.orthogonalPosition = @0.0;
+ y.title = @"Y Axis";
+ y.titleOffset = 45.0;
+ y.titleLocation = @150.0;
+
+// First bar plot
CPTBarPlot *barPlot = [CPTBarPlot tubularBarPlotWithColor:[CPTColor darkGrayColor] horizontalBars:NO];
- barPlot.baseValue = CPTDecimalFromDouble(0.0);
+ barPlot.baseValue = @0.0;
barPlot.dataSource = self;
- barPlot.barOffset = CPTDecimalFromFloat(-0.25f);
+ barPlot.barOffset = @(-0.25);
barPlot.identifier = @"Bar Plot 1";
[newGraph addPlot:barPlot toPlotSpace:plotSpace];
- // Second bar plot
+// Second bar plot
barPlot = [CPTBarPlot tubularBarPlotWithColor:[CPTColor blueColor] horizontalBars:NO];
barPlot.dataSource = self;
- barPlot.baseValue = CPTDecimalFromDouble(0.0);
- barPlot.barOffset = CPTDecimalFromFloat(0.25f);
+ barPlot.baseValue = @0.0;
+ barPlot.barOffset = @0.25;
barPlot.barCornerRadius = 2.0;
barPlot.identifier = @"Bar Plot 2";
barPlot.delegate = self;
@@ -299,7 +275,7 @@ -(void)constructBarChart
-(void)constructPieChart
{
- // Create pieChart from theme
+// Create pieChart from theme
CPTXYGraph *newGraph = [[CPTXYGraph alloc] initWithFrame:CGRectZero];
CPTTheme *theme = [CPTTheme themeNamed:kCPTDarkGradientTheme];
@@ -317,14 +293,14 @@ -(void)constructPieChart
newGraph.axisSet = nil;
- // Prepare a radial overlay gradient for shading/gloss
+// Prepare a radial overlay gradient for shading/gloss
CPTGradient *overlayGradient = [[CPTGradient alloc] init];
overlayGradient.gradientType = CPTGradientTypeRadial;
overlayGradient = [overlayGradient addColorStop:[[CPTColor blackColor] colorWithAlphaComponent:CPTFloat(0.0)] atPosition:CPTFloat(0.0)];
overlayGradient = [overlayGradient addColorStop:[[CPTColor blackColor] colorWithAlphaComponent:CPTFloat(0.3)] atPosition:CPTFloat(0.9)];
overlayGradient = [overlayGradient addColorStop:[[CPTColor blackColor] colorWithAlphaComponent:CPTFloat(0.7)] atPosition:CPTFloat(1.0)];
- // Add pie chart
+// Add pie chart
CPTPieChart *newPlot = [[CPTPieChart alloc] init];
newPlot.dataSource = self;
newPlot.pieRadius = 130.0;
@@ -337,14 +313,14 @@ -(void)constructPieChart
[newGraph addPlot:newPlot];
self.piePlot = newPlot;
- // Add some initial data
+// Add some initial data
self.dataForChart = @[@20.0, @30.0, @(NAN), @60.0];
}
#pragma mark -
#pragma mark CPTBarPlot delegate method
--(void)barPlot:(CPTBarPlot *)plot barWasSelectedAtRecordIndex:(NSUInteger)index
+-(void)barPlot:(nonnull CPTBarPlot *__unused)plot barWasSelectedAtRecordIndex:(NSUInteger)index
{
NSLog(@"barWasSelectedAtRecordIndex %lu", (unsigned long)index);
}
@@ -352,7 +328,7 @@ -(void)barPlot:(CPTBarPlot *)plot barWasSelectedAtRecordIndex:(NSUInteger)index
#pragma mark -
#pragma mark Plot Data Source Methods
--(NSUInteger)numberOfRecordsForPlot:(CPTPlot *)plot
+-(NSUInteger)numberOfRecordsForPlot:(nonnull CPTPlot *)plot
{
if ( [plot isKindOfClass:[CPTPieChart class]] ) {
return self.dataForChart.count;
@@ -365,12 +341,12 @@ -(NSUInteger)numberOfRecordsForPlot:(CPTPlot *)plot
}
}
--(id)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index
+-(nullable id)numberForPlot:(nonnull CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index
{
NSNumber *num = nil;
if ( [plot isKindOfClass:[CPTPieChart class]] ) {
- if ( index >= [self.dataForChart count] ) {
+ if ( index >= self.dataForChart.count ) {
return nil;
}
@@ -397,7 +373,7 @@ -(id)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUI
num = @(NAN);
}
else {
- num = @( (index + 1) * (index + 1) );
+ num = @((index + 1) * (index + 1));
if ( [plot.identifier isEqual:@"Bar Plot 2"] ) {
num = @(num.integerValue - 10);
}
@@ -409,10 +385,10 @@ -(id)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUI
if ( index % 8 ) {
NSString *key = (fieldEnum == CPTScatterPlotFieldX ? @"x" : @"y");
num = self.dataForPlot[index][key];
- // Green plot gets shifted above the blue
- if ( [(NSString *)plot.identifier isEqualToString : @"Green Plot"] ) {
+// Green plot gets shifted above the blue
+ if ( [(NSString *) plot.identifier isEqualToString:@"Green Plot"] ) {
if ( fieldEnum == CPTScatterPlotFieldY ) {
- num = @([num doubleValue] + 1.0);
+ num = @(num.doubleValue + 1.0);
}
}
}
@@ -424,7 +400,7 @@ -(id)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUI
return num;
}
--(CPTLayer *)dataLabelForPlot:(CPTPlot *)plot recordIndex:(NSUInteger)index
+-(nullable CPTLayer *)dataLabelForPlot:(nonnull CPTPlot *)plot recordIndex:(NSUInteger)index
{
if ( self.piePlotIsRotating ) {
return nil;
@@ -434,7 +410,7 @@ -(CPTLayer *)dataLabelForPlot:(CPTPlot *)plot recordIndex:(NSUInteger)index
static dispatch_once_t onceToken = 0;
dispatch_once(&onceToken, ^{
- whiteText = [[CPTMutableTextStyle alloc] init];
+ whiteText = [[CPTMutableTextStyle alloc] init];
whiteText.color = [CPTColor whiteColor];
});
diff --git a/examples/CPTTestApp-iPad/MainWindow.xib b/examples/CPTTestApp-iPad/MainWindow.xib
deleted file mode 100644
index 0f4c3fd6a..000000000
--- a/examples/CPTTestApp-iPad/MainWindow.xib
+++ /dev/null
@@ -1,436 +0,0 @@
-
-
-
- 800
- 10D540
- 760
- 1038.29
- 460.00
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- 81
-
-
- YES
-
-
-
- YES
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
- YES
-
- YES
-
-
- YES
-
-
-
- YES
-
- IBFilesOwner
- IBCocoaTouchFramework
-
-
- IBFirstResponder
- IBCocoaTouchFramework
-
-
-
- 292
- {768, 1024}
-
-
- 1
- MSAxIDEAA
-
- NO
- NO
-
- 2
-
- IBIPadFramework
- YES
-
-
- IBIPadFramework
-
-
- CPTTestApp_iPadViewController
-
- IBIPadFramework
-
-
-
-
- YES
-
-
- viewController
-
-
-
- 8
-
-
-
- delegate
-
-
-
- 9
-
-
-
- window
-
-
-
- 10
-
-
-
-
- YES
-
- 0
-
-
-
-
-
- -1
-
-
- File's Owner
-
-
- -2
-
-
-
-
- 2
-
-
-
-
- 6
-
-
- CPTTestApp_iPad App Delegate
-
-
- 7
-
-
-
-
-
-
- YES
-
- YES
- -1.CustomClassName
- -2.CustomClassName
- 2.IBEditorWindowLastContentRect
- 2.IBPluginDependency
- 6.CustomClassName
- 6.IBPluginDependency
- 7.CustomClassName
- 7.IBEditorWindowLastContentRect
- 7.IBPluginDependency
-
-
- YES
- UIApplication
- UIResponder
- {{200, 57}, {783, 799}}
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- CPTTestApp_iPadAppDelegate
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- CPTTestApp_iPadViewController
- {{512, 351}, {320, 480}}
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
-
- YES
-
-
- YES
-
-
-
-
- YES
-
-
- YES
-
-
-
- 10
-
-
-
- YES
-
- CPTTestApp_iPadAppDelegate
- NSObject
-
- YES
-
- YES
- viewController
- window
-
-
- YES
- CPTTestApp_iPadViewController
- UIWindow
-
-
-
- IBProjectSource
- Classes/CPTTestApp_iPadAppDelegate.h
-
-
-
- CPTTestApp_iPadViewController
- UIViewController
-
- IBProjectSource
- Classes/CPTTestApp_iPadViewController.h
-
-
-
-
- YES
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSError.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSFileManager.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSKeyValueCoding.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSKeyValueObserving.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSKeyedArchiver.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSNetServices.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSObject.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSPort.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSRunLoop.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSStream.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSThread.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSURL.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSURLConnection.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSXMLParser.h
-
-
-
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UIAccessibility.h
-
-
-
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UINibLoading.h
-
-
-
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UIResponder.h
-
-
-
- UIApplication
- UIResponder
-
- IBFrameworkSource
- UIKit.framework/Headers/UIApplication.h
-
-
-
- UIResponder
- NSObject
-
-
-
- UIResponder
-
- IBFrameworkSource
- UIKit.framework/Headers/UITextInput.h
-
-
-
- UISearchBar
- UIView
-
- IBFrameworkSource
- UIKit.framework/Headers/UISearchBar.h
-
-
-
- UISearchDisplayController
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UISearchDisplayController.h
-
-
-
- UIView
-
- IBFrameworkSource
- UIKit.framework/Headers/UITextField.h
-
-
-
- UIView
- UIResponder
-
- IBFrameworkSource
- UIKit.framework/Headers/UIView.h
-
-
-
- UIViewController
-
- IBFrameworkSource
- UIKit.framework/Headers/UINavigationController.h
-
-
-
- UIViewController
-
- IBFrameworkSource
- UIKit.framework/Headers/UISplitViewController.h
-
-
-
- UIViewController
-
- IBFrameworkSource
- UIKit.framework/Headers/UITabBarController.h
-
-
-
- UIViewController
- UIResponder
-
- IBFrameworkSource
- UIKit.framework/Headers/UIViewController.h
-
-
-
- UIWindow
- UIView
-
- IBFrameworkSource
- UIKit.framework/Headers/UIWindow.h
-
-
-
-
- 0
- IBIPadFramework
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
-
-
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3
-
-
- YES
- CPTTestApp-iPad.xcodeproj
- 3
- 81
-
-
diff --git a/examples/CPTTestApp-iPad/main.m b/examples/CPTTestApp-iPad/main.m
index 9ab34edf9..fa2ec758c 100644
--- a/examples/CPTTestApp-iPad/main.m
+++ b/examples/CPTTestApp-iPad/main.m
@@ -1,8 +1,8 @@
//
-// main.m
-// CPTTestApp-iPad
+// main.m
+// CPTTestApp-iPad
//
-// Created by Brad Larson on 4/1/2010.
+// Created by Brad Larson on 4/1/2010.
//
#import
diff --git a/examples/CPTTestApp-iPhone-SpeedTest/BarChart.xib b/examples/CPTTestApp-iPhone-SpeedTest/BarChart.xib
deleted file mode 100644
index 5e197ad1d..000000000
--- a/examples/CPTTestApp-iPhone-SpeedTest/BarChart.xib
+++ /dev/null
@@ -1,348 +0,0 @@
-
-
-
- 768
- 10F569
- 804
- 1038.29
- 461.00
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- 123
-
-
- YES
-
-
-
- YES
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
- YES
-
- YES
-
-
- YES
-
-
-
- YES
-
- IBFilesOwner
- IBCocoaTouchFramework
-
-
- IBFirstResponder
- IBCocoaTouchFramework
-
-
-
- 274
- {320, 411}
-
-
- 3
- MQA
-
- 2
-
-
-
-
- IBCocoaTouchFramework
-
-
-
-
- YES
-
-
- view
-
-
-
- 3
-
-
-
-
- YES
-
- 0
-
-
-
-
-
- 1
-
-
- YES
-
-
-
-
- -1
-
-
- File's Owner
-
-
- -2
-
-
-
-
-
-
- YES
-
- YES
- -1.CustomClassName
- -2.CustomClassName
- 1.CustomClassName
- 1.IBEditorWindowLastContentRect
- 1.IBPluginDependency
-
-
- YES
- CPTTestAppBarChartController
- UIResponder
- CPTGraphHostingView
- {{568, 433}, {320, 480}}
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
-
- YES
-
-
- YES
-
-
-
-
- YES
-
-
- YES
-
-
-
- 9
-
-
-
- YES
-
- CPTTestAppBarChartController
- UIViewController
-
- IBProjectSource
- Classes/CPTTestAppBarChartController.h
-
-
-
-
- YES
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSError.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSFileManager.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSKeyValueCoding.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSKeyValueObserving.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSKeyedArchiver.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSObject.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSRunLoop.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSThread.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSURL.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSURLConnection.h
-
-
-
- NSObject
-
- IBFrameworkSource
- QuartzCore.framework/Headers/CAAnimation.h
-
-
-
- NSObject
-
- IBFrameworkSource
- QuartzCore.framework/Headers/CALayer.h
-
-
-
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UIAccessibility.h
-
-
-
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UINibLoading.h
-
-
-
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UIResponder.h
-
-
-
- UIResponder
- NSObject
-
-
-
- UISearchBar
- UIView
-
- IBFrameworkSource
- UIKit.framework/Headers/UISearchBar.h
-
-
-
- UISearchDisplayController
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UISearchDisplayController.h
-
-
-
- UIView
-
- IBFrameworkSource
- UIKit.framework/Headers/UITextField.h
-
-
-
- UIView
- UIResponder
-
- IBFrameworkSource
- UIKit.framework/Headers/UIView.h
-
-
-
- UIViewController
-
- IBFrameworkSource
- UIKit.framework/Headers/UINavigationController.h
-
-
-
- UIViewController
-
- IBFrameworkSource
- UIKit.framework/Headers/UIPopoverController.h
-
-
-
- UIViewController
-
- IBFrameworkSource
- UIKit.framework/Headers/UISplitViewController.h
-
-
-
- UIViewController
-
- IBFrameworkSource
- UIKit.framework/Headers/UITabBarController.h
-
-
-
- UIViewController
- UIResponder
-
- IBFrameworkSource
- UIKit.framework/Headers/UIViewController.h
-
-
-
-
- 0
- IBCocoaTouchFramework
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
-
-
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
-
-
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3
-
-
- YES
- CPTTestApp-iPhone.xcodeproj
- 3
- 123
-
-
diff --git a/examples/CPTTestApp-iPhone-SpeedTest/CPTTestApp-iPhone.xcodeproj/project.pbxproj b/examples/CPTTestApp-iPhone-SpeedTest/CPTTestApp-iPhone.xcodeproj/project.pbxproj
deleted file mode 100644
index 1ddedae2a..000000000
--- a/examples/CPTTestApp-iPhone-SpeedTest/CPTTestApp-iPhone.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,411 +0,0 @@
-// !$*UTF8*$!
-{
- archiveVersion = 1;
- classes = {
- };
- objectVersion = 46;
- objects = {
-
-/* Begin PBXBuildFile section */
- 1D3623260D0F684500981E51 /* CPTTestApp_iPhoneAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D3623250D0F684500981E51 /* CPTTestApp_iPhoneAppDelegate.m */; };
- 1D60589B0D05DD56006BFB54 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; };
- 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; };
- 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; };
- 28216C970DB411BC00E5133A /* CPTTestAppBarChartController.m in Sources */ = {isa = PBXBuildFile; fileRef = 28216C960DB411BC00E5133A /* CPTTestAppBarChartController.m */; };
- 282CCBFE0DB6C98000C4EA27 /* BarChart.xib in Resources */ = {isa = PBXBuildFile; fileRef = 282CCBFD0DB6C98000C4EA27 /* BarChart.xib */; };
- 288765080DF74369002DB57D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765070DF74369002DB57D /* CoreGraphics.framework */; };
- 28AD73880D9D96C1002E5188 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 28AD73870D9D96C1002E5188 /* MainWindow.xib */; };
- 4E5EFFBC11B7DC6D00D8D6CB /* TestXYTheme.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E5EFFBB11B7DC6D00D8D6CB /* TestXYTheme.m */; };
- BC74A33A10FC40C600E7E90D /* CPTTestAppPieChartController.m in Sources */ = {isa = PBXBuildFile; fileRef = BC74A33910FC40C600E7E90D /* CPTTestAppPieChartController.m */; };
- BC74A34110FC418D00E7E90D /* PieChart.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC74A34010FC418D00E7E90D /* PieChart.xib */; };
- BC8166CE1100DD00006D898E /* 16-line-chart.png in Resources */ = {isa = PBXBuildFile; fileRef = BC8166CC1100DD00006D898E /* 16-line-chart.png */; };
- BC8166CF1100DD00006D898E /* 17-bar-chart.png in Resources */ = {isa = PBXBuildFile; fileRef = BC8166CD1100DD00006D898E /* 17-bar-chart.png */; };
- BC8166D21100DD6F006D898E /* 62-contrast.png in Resources */ = {isa = PBXBuildFile; fileRef = BC8166D11100DD6F006D898E /* 62-contrast.png */; };
- BC9B81DA0FB893F70035D8DA /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BC9B81D90FB893F70035D8DA /* QuartzCore.framework */; };
- BC9B84360FB8B7110035D8DA /* ScatterPlot.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC9B84350FB8B7110035D8DA /* ScatterPlot.xib */; };
- BC9B843A0FB8B76B0035D8DA /* CPTTestAppScatterPlotController.m in Sources */ = {isa = PBXBuildFile; fileRef = BC9B84390FB8B76B0035D8DA /* CPTTestAppScatterPlotController.m */; };
- C34677B619F3348600429A85 /* Launch Screen.xib in Resources */ = {isa = PBXBuildFile; fileRef = C34677B519F3348600429A85 /* Launch Screen.xib */; };
- C3CD284317DE9CB7008EED1E /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C3CD284217DE9CB7008EED1E /* Accelerate.framework */; };
- C3D3936819FD671A00148319 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C3D3936719FD671A00148319 /* Images.xcassets */; };
- F7AE270A0FFFB61E001F26F0 /* libCorePlot-CocoaTouch.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BC9B83B50FB8A9BC0035D8DA /* libCorePlot-CocoaTouch.a */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXContainerItemProxy section */
- BC9B83B40FB8A9BC0035D8DA /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = BC9B83B00FB8A9BC0035D8DA /* CorePlot-CocoaTouch.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = BC9B83470FB8A0A40035D8DA;
- remoteInfo = "CorePlot-CocoaTouch";
- };
- BC9B83B60FB8A9C70035D8DA /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = BC9B83B00FB8A9BC0035D8DA /* CorePlot-CocoaTouch.xcodeproj */;
- proxyType = 1;
- remoteGlobalIDString = BC9B83460FB8A0A40035D8DA;
- remoteInfo = "CorePlot-CocoaTouch";
- };
-/* End PBXContainerItemProxy section */
-
-/* Begin PBXFileReference section */
- 1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
- 1D3623240D0F684500981E51 /* CPTTestApp_iPhoneAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CPTTestApp_iPhoneAppDelegate.h; sourceTree = ""; };
- 1D3623250D0F684500981E51 /* CPTTestApp_iPhoneAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CPTTestApp_iPhoneAppDelegate.m; sourceTree = ""; };
- 1D6058910D05DD3D006BFB54 /* CPTTestApp-iPhone.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "CPTTestApp-iPhone.app"; sourceTree = BUILT_PRODUCTS_DIR; };
- 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
- 28216C950DB411BC00E5133A /* CPTTestAppBarChartController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CPTTestAppBarChartController.h; sourceTree = ""; };
- 28216C960DB411BC00E5133A /* CPTTestAppBarChartController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CPTTestAppBarChartController.m; sourceTree = ""; };
- 282CCBFD0DB6C98000C4EA27 /* BarChart.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = BarChart.xib; sourceTree = ""; };
- 288765070DF74369002DB57D /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
- 28A0AB4B0D9B1048005BE974 /* CPTTestApp_iPhone_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CPTTestApp_iPhone_Prefix.pch; sourceTree = ""; };
- 28AD73870D9D96C1002E5188 /* MainWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MainWindow.xib; sourceTree = ""; };
- 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; };
- 4E5EFFBA11B7DC6D00D8D6CB /* TestXYTheme.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestXYTheme.h; sourceTree = ""; };
- 4E5EFFBB11B7DC6D00D8D6CB /* TestXYTheme.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestXYTheme.m; sourceTree = ""; };
- 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
- BC74A33810FC40C600E7E90D /* CPTTestAppPieChartController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CPTTestAppPieChartController.h; sourceTree = ""; };
- BC74A33910FC40C600E7E90D /* CPTTestAppPieChartController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CPTTestAppPieChartController.m; sourceTree = ""; };
- BC74A34010FC418D00E7E90D /* PieChart.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = PieChart.xib; sourceTree = ""; };
- BC8166CC1100DD00006D898E /* 16-line-chart.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "16-line-chart.png"; path = "GlyphishIcons/16-line-chart.png"; sourceTree = ""; };
- BC8166CD1100DD00006D898E /* 17-bar-chart.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "17-bar-chart.png"; path = "GlyphishIcons/17-bar-chart.png"; sourceTree = ""; };
- BC8166D11100DD6F006D898E /* 62-contrast.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "62-contrast.png"; path = "GlyphishIcons/62-contrast.png"; sourceTree = ""; };
- BC9B81D90FB893F70035D8DA /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
- BC9B83B00FB8A9BC0035D8DA /* CorePlot-CocoaTouch.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "CorePlot-CocoaTouch.xcodeproj"; path = "../../framework/CorePlot-CocoaTouch.xcodeproj"; sourceTree = SOURCE_ROOT; };
- BC9B84350FB8B7110035D8DA /* ScatterPlot.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ScatterPlot.xib; sourceTree = ""; };
- BC9B84380FB8B76B0035D8DA /* CPTTestAppScatterPlotController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CPTTestAppScatterPlotController.h; sourceTree = ""; };
- BC9B84390FB8B76B0035D8DA /* CPTTestAppScatterPlotController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CPTTestAppScatterPlotController.m; sourceTree = ""; };
- C34677B519F3348600429A85 /* Launch Screen.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = "Launch Screen.xib"; sourceTree = ""; };
- C36E7CBF19DE1BFD00EDEACB /* CorePlotWarnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = CorePlotWarnings.xcconfig; path = ../../framework/CorePlotWarnings.xcconfig; sourceTree = ""; };
- C3CD284217DE9CB7008EED1E /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; };
- C3D3936719FD671A00148319 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = "CPTTestApp-iPhone/Images.xcassets"; sourceTree = ""; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
- 1D60588F0D05DD3D006BFB54 /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */,
- 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */,
- 288765080DF74369002DB57D /* CoreGraphics.framework in Frameworks */,
- BC9B81DA0FB893F70035D8DA /* QuartzCore.framework in Frameworks */,
- F7AE270A0FFFB61E001F26F0 /* libCorePlot-CocoaTouch.a in Frameworks */,
- C3CD284317DE9CB7008EED1E /* Accelerate.framework in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
- 080E96DDFE201D6D7F000001 /* Classes */ = {
- isa = PBXGroup;
- children = (
- 4E5EFFBA11B7DC6D00D8D6CB /* TestXYTheme.h */,
- 4E5EFFBB11B7DC6D00D8D6CB /* TestXYTheme.m */,
- 28216C950DB411BC00E5133A /* CPTTestAppBarChartController.h */,
- 28216C960DB411BC00E5133A /* CPTTestAppBarChartController.m */,
- 1D3623240D0F684500981E51 /* CPTTestApp_iPhoneAppDelegate.h */,
- 1D3623250D0F684500981E51 /* CPTTestApp_iPhoneAppDelegate.m */,
- BC74A33810FC40C600E7E90D /* CPTTestAppPieChartController.h */,
- BC74A33910FC40C600E7E90D /* CPTTestAppPieChartController.m */,
- BC9B84380FB8B76B0035D8DA /* CPTTestAppScatterPlotController.h */,
- BC9B84390FB8B76B0035D8DA /* CPTTestAppScatterPlotController.m */,
- );
- path = Classes;
- sourceTree = "";
- };
- 19C28FACFE9D520D11CA2CBB /* Products */ = {
- isa = PBXGroup;
- children = (
- 1D6058910D05DD3D006BFB54 /* CPTTestApp-iPhone.app */,
- );
- name = Products;
- sourceTree = "";
- };
- 29B97314FDCFA39411CA2CEA /* CPTTestApp-iPhone */ = {
- isa = PBXGroup;
- children = (
- BC9B83B00FB8A9BC0035D8DA /* CorePlot-CocoaTouch.xcodeproj */,
- 080E96DDFE201D6D7F000001 /* Classes */,
- 29B97315FDCFA39411CA2CEA /* Other Sources */,
- 29B97317FDCFA39411CA2CEA /* Resources */,
- 29B97323FDCFA39411CA2CEA /* Frameworks */,
- 19C28FACFE9D520D11CA2CBB /* Products */,
- );
- indentWidth = 4;
- name = "CPTTestApp-iPhone";
- sourceTree = "";
- tabWidth = 4;
- usesTabs = 0;
- };
- 29B97315FDCFA39411CA2CEA /* Other Sources */ = {
- isa = PBXGroup;
- children = (
- 28A0AB4B0D9B1048005BE974 /* CPTTestApp_iPhone_Prefix.pch */,
- 29B97316FDCFA39411CA2CEA /* main.m */,
- C36E7CBF19DE1BFD00EDEACB /* CorePlotWarnings.xcconfig */,
- );
- name = "Other Sources";
- sourceTree = "";
- };
- 29B97317FDCFA39411CA2CEA /* Resources */ = {
- isa = PBXGroup;
- children = (
- C3D3936719FD671A00148319 /* Images.xcassets */,
- BC8166D11100DD6F006D898E /* 62-contrast.png */,
- BC8166CC1100DD00006D898E /* 16-line-chart.png */,
- BC8166CD1100DD00006D898E /* 17-bar-chart.png */,
- 28AD73870D9D96C1002E5188 /* MainWindow.xib */,
- BC9B84350FB8B7110035D8DA /* ScatterPlot.xib */,
- 282CCBFD0DB6C98000C4EA27 /* BarChart.xib */,
- BC74A34010FC418D00E7E90D /* PieChart.xib */,
- 8D1107310486CEB800E47090 /* Info.plist */,
- C34677B519F3348600429A85 /* Launch Screen.xib */,
- );
- name = Resources;
- sourceTree = "";
- };
- 29B97323FDCFA39411CA2CEA /* Frameworks */ = {
- isa = PBXGroup;
- children = (
- BC9B81D90FB893F70035D8DA /* QuartzCore.framework */,
- 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */,
- 1D30AB110D05D00D00671497 /* Foundation.framework */,
- 288765070DF74369002DB57D /* CoreGraphics.framework */,
- C3CD284217DE9CB7008EED1E /* Accelerate.framework */,
- );
- name = Frameworks;
- sourceTree = "";
- };
- BC9B83B10FB8A9BC0035D8DA /* Products */ = {
- isa = PBXGroup;
- children = (
- BC9B83B50FB8A9BC0035D8DA /* libCorePlot-CocoaTouch.a */,
- );
- name = Products;
- sourceTree = "";
- };
-/* End PBXGroup section */
-
-/* Begin PBXNativeTarget section */
- 1D6058900D05DD3D006BFB54 /* CPTTestApp-iPhone */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "CPTTestApp-iPhone" */;
- buildPhases = (
- 1D60588D0D05DD3D006BFB54 /* Resources */,
- 1D60588E0D05DD3D006BFB54 /* Sources */,
- 1D60588F0D05DD3D006BFB54 /* Frameworks */,
- );
- buildRules = (
- );
- dependencies = (
- BC9B83B70FB8A9C70035D8DA /* PBXTargetDependency */,
- );
- name = "CPTTestApp-iPhone";
- productName = "CPTTestApp-iPhone";
- productReference = 1D6058910D05DD3D006BFB54 /* CPTTestApp-iPhone.app */;
- productType = "com.apple.product-type.application";
- };
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
- 29B97313FDCFA39411CA2CEA /* Project object */ = {
- isa = PBXProject;
- attributes = {
- LastUpgradeCheck = 0700;
- };
- buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "CPTTestApp-iPhone" */;
- compatibilityVersion = "Xcode 3.2";
- developmentRegion = English;
- hasScannedForEncodings = 1;
- knownRegions = (
- English,
- Japanese,
- French,
- German,
- );
- mainGroup = 29B97314FDCFA39411CA2CEA /* CPTTestApp-iPhone */;
- projectDirPath = "";
- projectReferences = (
- {
- ProductGroup = BC9B83B10FB8A9BC0035D8DA /* Products */;
- ProjectRef = BC9B83B00FB8A9BC0035D8DA /* CorePlot-CocoaTouch.xcodeproj */;
- },
- );
- projectRoot = "";
- targets = (
- 1D6058900D05DD3D006BFB54 /* CPTTestApp-iPhone */,
- );
- };
-/* End PBXProject section */
-
-/* Begin PBXReferenceProxy section */
- BC9B83B50FB8A9BC0035D8DA /* libCorePlot-CocoaTouch.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = "libCorePlot-CocoaTouch.a";
- remoteRef = BC9B83B40FB8A9BC0035D8DA /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
-/* End PBXReferenceProxy section */
-
-/* Begin PBXResourcesBuildPhase section */
- 1D60588D0D05DD3D006BFB54 /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 28AD73880D9D96C1002E5188 /* MainWindow.xib in Resources */,
- 282CCBFE0DB6C98000C4EA27 /* BarChart.xib in Resources */,
- BC9B84360FB8B7110035D8DA /* ScatterPlot.xib in Resources */,
- BC74A34110FC418D00E7E90D /* PieChart.xib in Resources */,
- C34677B619F3348600429A85 /* Launch Screen.xib in Resources */,
- BC8166CE1100DD00006D898E /* 16-line-chart.png in Resources */,
- BC8166CF1100DD00006D898E /* 17-bar-chart.png in Resources */,
- BC8166D21100DD6F006D898E /* 62-contrast.png in Resources */,
- C3D3936819FD671A00148319 /* Images.xcassets in Resources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXResourcesBuildPhase section */
-
-/* Begin PBXSourcesBuildPhase section */
- 1D60588E0D05DD3D006BFB54 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 1D60589B0D05DD56006BFB54 /* main.m in Sources */,
- 1D3623260D0F684500981E51 /* CPTTestApp_iPhoneAppDelegate.m in Sources */,
- 28216C970DB411BC00E5133A /* CPTTestAppBarChartController.m in Sources */,
- BC9B843A0FB8B76B0035D8DA /* CPTTestAppScatterPlotController.m in Sources */,
- BC74A33A10FC40C600E7E90D /* CPTTestAppPieChartController.m in Sources */,
- 4E5EFFBC11B7DC6D00D8D6CB /* TestXYTheme.m in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXSourcesBuildPhase section */
-
-/* Begin PBXTargetDependency section */
- BC9B83B70FB8A9C70035D8DA /* PBXTargetDependency */ = {
- isa = PBXTargetDependency;
- name = "CorePlot-CocoaTouch";
- targetProxy = BC9B83B60FB8A9C70035D8DA /* PBXContainerItemProxy */;
- };
-/* End PBXTargetDependency section */
-
-/* Begin XCBuildConfiguration section */
- 1D6058940D05DD3E006BFB54 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
- CLANG_ENABLE_OBJC_ARC = YES;
- COPY_PHASE_STRIP = NO;
- GCC_DYNAMIC_NO_PIC = NO;
- GCC_OPTIMIZATION_LEVEL = 0;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = CPTTestApp_iPhone_Prefix.pch;
- HEADER_SEARCH_PATHS = "";
- INFOPLIST_FILE = Info.plist;
- LIBRARY_SEARCH_PATHS = "";
- OTHER_LDFLAGS = (
- "-all_load",
- "-ObjC",
- );
- PRODUCT_BUNDLE_IDENTIFIER = org.CorePlot.CPTTestAppiPhoneSpeed;
- PRODUCT_NAME = "CPTTestApp-iPhone";
- SDKROOT = iphoneos;
- };
- name = Debug;
- };
- 1D6058950D05DD3E006BFB54 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
- CLANG_ENABLE_OBJC_ARC = YES;
- COPY_PHASE_STRIP = YES;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = CPTTestApp_iPhone_Prefix.pch;
- HEADER_SEARCH_PATHS = "";
- INFOPLIST_FILE = Info.plist;
- LIBRARY_SEARCH_PATHS = "";
- OTHER_LDFLAGS = (
- "-all_load",
- "-ObjC",
- );
- PRODUCT_BUNDLE_IDENTIFIER = org.CorePlot.CPTTestAppiPhoneSpeed;
- PRODUCT_NAME = "CPTTestApp-iPhone";
- SDKROOT = iphoneos;
- };
- name = Release;
- };
- C01FCF4F08A954540054247B /* Debug */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = C36E7CBF19DE1BFD00EDEACB /* CorePlotWarnings.xcconfig */;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- CODE_SIGN_IDENTITY = "iPhone Developer";
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- ENABLE_TESTABILITY = YES;
- GCC_C_LANGUAGE_STANDARD = c99;
- GCC_TREAT_WARNINGS_AS_ERRORS = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- HEADER_SEARCH_PATHS = "";
- IPHONEOS_DEPLOYMENT_TARGET = 6.0;
- ONLY_ACTIVE_ARCH = YES;
- OTHER_LDFLAGS = "-ObjC";
- SDKROOT = iphoneos;
- SYMROOT = "$(SRCROOT)/../../build";
- USER_HEADER_SEARCH_PATHS = "\"${PROJECT_DIR}/../../framework\"/**";
- };
- name = Debug;
- };
- C01FCF5008A954540054247B /* Release */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = C36E7CBF19DE1BFD00EDEACB /* CorePlotWarnings.xcconfig */;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- CODE_SIGN_IDENTITY = "iPhone Distribution";
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
- GCC_C_LANGUAGE_STANDARD = c99;
- GCC_TREAT_WARNINGS_AS_ERRORS = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- HEADER_SEARCH_PATHS = "";
- IPHONEOS_DEPLOYMENT_TARGET = 6.0;
- ONLY_ACTIVE_ARCH = NO;
- OTHER_LDFLAGS = "-ObjC";
- SDKROOT = iphoneos;
- SYMROOT = "$(SRCROOT)/../../build";
- USER_HEADER_SEARCH_PATHS = "\"${PROJECT_DIR}/../../framework\"/**";
- };
- name = Release;
- };
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
- 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "CPTTestApp-iPhone" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 1D6058940D05DD3E006BFB54 /* Debug */,
- 1D6058950D05DD3E006BFB54 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- C01FCF4E08A954540054247B /* Build configuration list for PBXProject "CPTTestApp-iPhone" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- C01FCF4F08A954540054247B /* Debug */,
- C01FCF5008A954540054247B /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
-/* End XCConfigurationList section */
- };
- rootObject = 29B97313FDCFA39411CA2CEA /* Project object */;
-}
diff --git a/examples/CPTTestApp-iPhone-SpeedTest/CPTTestApp-iPhone.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/examples/CPTTestApp-iPhone-SpeedTest/CPTTestApp-iPhone.xcodeproj/project.xcworkspace/contents.xcworkspacedata
deleted file mode 100644
index ab9bdd134..000000000
--- a/examples/CPTTestApp-iPhone-SpeedTest/CPTTestApp-iPhone.xcodeproj/project.xcworkspace/contents.xcworkspacedata
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
diff --git a/examples/CPTTestApp-iPhone-SpeedTest/CPTTestApp-iPhone/Images.xcassets/AppIcon.appiconset/Contents.json b/examples/CPTTestApp-iPhone-SpeedTest/CPTTestApp-iPhone/Images.xcassets/AppIcon.appiconset/Contents.json
deleted file mode 100644
index 340f2376e..000000000
--- a/examples/CPTTestApp-iPhone-SpeedTest/CPTTestApp-iPhone/Images.xcassets/AppIcon.appiconset/Contents.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{
- "images" : [
- {
- "size" : "29x29",
- "idiom" : "iphone",
- "filename" : "Icon-Small.png",
- "scale" : "1x"
- },
- {
- "size" : "29x29",
- "idiom" : "iphone",
- "filename" : "Icon-Small@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "40x40",
- "idiom" : "iphone",
- "filename" : "Icon-Spotlight-40@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "57x57",
- "idiom" : "iphone",
- "filename" : "Icon.png",
- "scale" : "1x"
- },
- {
- "size" : "57x57",
- "idiom" : "iphone",
- "filename" : "Icon@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "60x60",
- "idiom" : "iphone",
- "filename" : "Icon-60@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "60x60",
- "idiom" : "iphone",
- "filename" : "Icon-60@3x.png",
- "scale" : "3x"
- }
- ],
- "info" : {
- "version" : 1,
- "author" : "xcode"
- }
-}
\ No newline at end of file
diff --git a/examples/CPTTestApp-iPhone-SpeedTest/CPTTestApp-iPhone/Images.xcassets/AppIcon.appiconset/Icon-60@2x.png b/examples/CPTTestApp-iPhone-SpeedTest/CPTTestApp-iPhone/Images.xcassets/AppIcon.appiconset/Icon-60@2x.png
deleted file mode 100644
index e48d5b2ba..000000000
Binary files a/examples/CPTTestApp-iPhone-SpeedTest/CPTTestApp-iPhone/Images.xcassets/AppIcon.appiconset/Icon-60@2x.png and /dev/null differ
diff --git a/examples/CPTTestApp-iPhone-SpeedTest/CPTTestApp-iPhone/Images.xcassets/AppIcon.appiconset/Icon-60@3x.png b/examples/CPTTestApp-iPhone-SpeedTest/CPTTestApp-iPhone/Images.xcassets/AppIcon.appiconset/Icon-60@3x.png
deleted file mode 100644
index 0c4f8a4cc..000000000
Binary files a/examples/CPTTestApp-iPhone-SpeedTest/CPTTestApp-iPhone/Images.xcassets/AppIcon.appiconset/Icon-60@3x.png and /dev/null differ
diff --git a/examples/CPTTestApp-iPhone-SpeedTest/CPTTestApp-iPhone/Images.xcassets/AppIcon.appiconset/Icon-Small.png b/examples/CPTTestApp-iPhone-SpeedTest/CPTTestApp-iPhone/Images.xcassets/AppIcon.appiconset/Icon-Small.png
deleted file mode 100644
index 5104b1d94..000000000
Binary files a/examples/CPTTestApp-iPhone-SpeedTest/CPTTestApp-iPhone/Images.xcassets/AppIcon.appiconset/Icon-Small.png and /dev/null differ
diff --git a/examples/CPTTestApp-iPhone-SpeedTest/CPTTestApp-iPhone/Images.xcassets/AppIcon.appiconset/Icon-Small@2x.png b/examples/CPTTestApp-iPhone-SpeedTest/CPTTestApp-iPhone/Images.xcassets/AppIcon.appiconset/Icon-Small@2x.png
deleted file mode 100644
index 7f872ef97..000000000
Binary files a/examples/CPTTestApp-iPhone-SpeedTest/CPTTestApp-iPhone/Images.xcassets/AppIcon.appiconset/Icon-Small@2x.png and /dev/null differ
diff --git a/examples/CPTTestApp-iPhone-SpeedTest/CPTTestApp-iPhone/Images.xcassets/AppIcon.appiconset/Icon-Spotlight-40@2x.png b/examples/CPTTestApp-iPhone-SpeedTest/CPTTestApp-iPhone/Images.xcassets/AppIcon.appiconset/Icon-Spotlight-40@2x.png
deleted file mode 100644
index 87672586c..000000000
Binary files a/examples/CPTTestApp-iPhone-SpeedTest/CPTTestApp-iPhone/Images.xcassets/AppIcon.appiconset/Icon-Spotlight-40@2x.png and /dev/null differ
diff --git a/examples/CPTTestApp-iPhone-SpeedTest/CPTTestApp-iPhone/Images.xcassets/AppIcon.appiconset/Icon.png b/examples/CPTTestApp-iPhone-SpeedTest/CPTTestApp-iPhone/Images.xcassets/AppIcon.appiconset/Icon.png
deleted file mode 100644
index c40700a7a..000000000
Binary files a/examples/CPTTestApp-iPhone-SpeedTest/CPTTestApp-iPhone/Images.xcassets/AppIcon.appiconset/Icon.png and /dev/null differ
diff --git a/examples/CPTTestApp-iPhone-SpeedTest/CPTTestApp-iPhone/Images.xcassets/AppIcon.appiconset/Icon@2x.png b/examples/CPTTestApp-iPhone-SpeedTest/CPTTestApp-iPhone/Images.xcassets/AppIcon.appiconset/Icon@2x.png
deleted file mode 100644
index 2e49f1b07..000000000
Binary files a/examples/CPTTestApp-iPhone-SpeedTest/CPTTestApp-iPhone/Images.xcassets/AppIcon.appiconset/Icon@2x.png and /dev/null differ
diff --git a/examples/CPTTestApp-iPhone-SpeedTest/CPTTestApp-iPhone/Images.xcassets/LaunchImage.launchimage/Contents.json b/examples/CPTTestApp-iPhone-SpeedTest/CPTTestApp-iPhone/Images.xcassets/LaunchImage.launchimage/Contents.json
deleted file mode 100644
index f0fce5477..000000000
--- a/examples/CPTTestApp-iPhone-SpeedTest/CPTTestApp-iPhone/Images.xcassets/LaunchImage.launchimage/Contents.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "images" : [
- {
- "orientation" : "portrait",
- "idiom" : "iphone",
- "filename" : "Default-568h@2x.png",
- "minimum-system-version" : "7.0",
- "subtype" : "retina4",
- "scale" : "2x"
- },
- {
- "idiom" : "iphone",
- "scale" : "1x",
- "orientation" : "portrait"
- },
- {
- "idiom" : "iphone",
- "scale" : "2x",
- "orientation" : "portrait"
- },
- {
- "orientation" : "portrait",
- "idiom" : "iphone",
- "filename" : "Default-568h@2x.png",
- "subtype" : "retina4",
- "scale" : "2x"
- },
- {
- "orientation" : "portrait",
- "idiom" : "iphone",
- "minimum-system-version" : "7.0",
- "scale" : "2x"
- }
- ],
- "info" : {
- "version" : 1,
- "author" : "xcode"
- }
-}
\ No newline at end of file
diff --git a/examples/CPTTestApp-iPhone-SpeedTest/CPTTestApp-iPhone/Images.xcassets/LaunchImage.launchimage/Default-568h@2x.png b/examples/CPTTestApp-iPhone-SpeedTest/CPTTestApp-iPhone/Images.xcassets/LaunchImage.launchimage/Default-568h@2x.png
deleted file mode 100644
index 0891b7aab..000000000
Binary files a/examples/CPTTestApp-iPhone-SpeedTest/CPTTestApp-iPhone/Images.xcassets/LaunchImage.launchimage/Default-568h@2x.png and /dev/null differ
diff --git a/examples/CPTTestApp-iPhone-SpeedTest/CPTTestApp_iPhone_Prefix.pch b/examples/CPTTestApp-iPhone-SpeedTest/CPTTestApp_iPhone_Prefix.pch
deleted file mode 100644
index 5cdc39f4d..000000000
--- a/examples/CPTTestApp-iPhone-SpeedTest/CPTTestApp_iPhone_Prefix.pch
+++ /dev/null
@@ -1,8 +0,0 @@
-//
-// Prefix header for all source files of the 'CPTTestApp-iPhone' target in the 'CPTTestApp-iPhone' project
-//
-
-#ifdef __OBJC__
- #import
- #import
-#endif
diff --git a/examples/CPTTestApp-iPhone-SpeedTest/Classes/CPTTestAppBarChartController.h b/examples/CPTTestApp-iPhone-SpeedTest/Classes/CPTTestAppBarChartController.h
deleted file mode 100644
index 147b3aebb..000000000
--- a/examples/CPTTestApp-iPhone-SpeedTest/Classes/CPTTestAppBarChartController.h
+++ /dev/null
@@ -1,11 +0,0 @@
-//
-// CPTTestAppBarChartController.h
-// CPTTestApp-iPhone
-//
-
-#import "CorePlot-CocoaTouch.h"
-#import
-
-@interface CPTTestAppBarChartController : UIViewController
-
-@end
diff --git a/examples/CPTTestApp-iPhone-SpeedTest/Classes/CPTTestAppBarChartController.m b/examples/CPTTestApp-iPhone-SpeedTest/Classes/CPTTestAppBarChartController.m
deleted file mode 100644
index 43aeb02b8..000000000
--- a/examples/CPTTestApp-iPhone-SpeedTest/Classes/CPTTestAppBarChartController.m
+++ /dev/null
@@ -1,143 +0,0 @@
-//
-// CPTTestAppBarChartController.m
-// CPTTestApp-iPhone
-//
-
-#import "CPTTestAppBarChartController.h"
-
-@interface CPTTestAppBarChartController()
-
-@property (nonatomic, readwrite, strong) CPTXYGraph *barChart;
-
-@end
-
-#pragma mark -
-
-@implementation CPTTestAppBarChartController
-
-@synthesize barChart;
-
-#pragma mark -
-#pragma mark Initialization and teardown
-
--(void)viewDidLoad
-{
- [super viewDidLoad];
-
- // Create barChart from theme
- CPTXYGraph *newGraph = [[CPTXYGraph alloc] initWithFrame:CGRectZero];
- CPTTheme *theme = [CPTTheme themeNamed:kCPTDarkGradientTheme];
- [newGraph applyTheme:theme];
- CPTGraphHostingView *hostingView = (CPTGraphHostingView *)self.view;
- self.barChart = newGraph;
-
- hostingView.hostedGraph = newGraph;
- newGraph.plotAreaFrame.masksToBorder = NO;
-
- newGraph.paddingLeft = 70.0;
- newGraph.paddingTop = 55.0;
- newGraph.paddingRight = 20.0;
- newGraph.paddingBottom = 80.0;
-
- // Add plot space for horizontal bar charts
- CPTXYPlotSpace *plotSpace = (CPTXYPlotSpace *)newGraph.defaultPlotSpace;
- plotSpace.yRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble(0.0) length:CPTDecimalFromDouble(300.0)];
- plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble(0.0) length:CPTDecimalFromDouble(16.0)];
-
- CPTXYAxisSet *axisSet = (CPTXYAxisSet *)newGraph.axisSet;
- CPTXYAxis *x = axisSet.xAxis;
- x.axisLineStyle = nil;
- x.majorTickLineStyle = nil;
- x.minorTickLineStyle = nil;
- x.majorIntervalLength = CPTDecimalFromDouble(5.0);
- x.orthogonalCoordinateDecimal = CPTDecimalFromDouble(0.0);
- x.title = @"X Axis";
- x.titleLocation = CPTDecimalFromFloat(7.5f);
- x.titleOffset = 55.0;
-
- // Define some custom labels for the data elements
- x.labelRotation = CPTFloat(M_PI_4);
- x.labelingPolicy = CPTAxisLabelingPolicyNone;
- NSArray *customTickLocations = @[@1, @5, @10, @15];
- NSArray *xAxisLabels = @[@"Label A", @"Label B", @"Label C", @"Label D"];
- NSUInteger labelLocation = 0;
- NSMutableSet *customLabels = [NSMutableSet setWithCapacity:[xAxisLabels count]];
- for ( NSNumber *tickLocation in customTickLocations ) {
- CPTAxisLabel *newLabel = [[CPTAxisLabel alloc] initWithText:xAxisLabels[labelLocation++] textStyle:x.labelTextStyle];
- newLabel.tickLocation = [tickLocation decimalValue];
- newLabel.offset = x.labelOffset + x.majorTickLength;
- newLabel.rotation = CPTFloat(M_PI_4);
- [customLabels addObject:newLabel];
- }
-
- x.axisLabels = customLabels;
-
- CPTXYAxis *y = axisSet.yAxis;
- y.axisLineStyle = nil;
- y.majorTickLineStyle = nil;
- y.minorTickLineStyle = nil;
- y.majorIntervalLength = CPTDecimalFromDouble(50.0);
- y.orthogonalCoordinateDecimal = CPTDecimalFromDouble(0.0);
- y.title = @"Y Axis";
- y.titleOffset = 45.0;
- y.titleLocation = CPTDecimalFromFloat(150.0f);
-
- // First bar plot
- CPTBarPlot *barPlot = [CPTBarPlot tubularBarPlotWithColor:[CPTColor darkGrayColor] horizontalBars:NO];
- barPlot.baseValue = CPTDecimalFromDouble(0.0);
- barPlot.dataSource = self;
- barPlot.barOffset = CPTDecimalFromFloat(-0.25f);
- barPlot.identifier = @"Bar Plot 1";
- [newGraph addPlot:barPlot toPlotSpace:plotSpace];
-
- // Second bar plot
- barPlot = [CPTBarPlot tubularBarPlotWithColor:[CPTColor blueColor] horizontalBars:NO];
- barPlot.dataSource = self;
- barPlot.baseValue = CPTDecimalFromDouble(0.0);
- barPlot.barOffset = CPTDecimalFromFloat(0.25f);
- barPlot.barCornerRadius = 2.0;
- barPlot.identifier = @"Bar Plot 2";
- [newGraph addPlot:barPlot toPlotSpace:plotSpace];
-
-#ifdef PERFORMANCE_TEST
- [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(changePlotRange) userInfo:nil repeats:YES];
-#endif
-}
-
--(void)didReceiveMemoryWarning
-{
- [super didReceiveMemoryWarning]; // Releases the view if it doesn't have a superview
- // Release anything that's not essential, such as cached data
-}
-
-#pragma mark -
-#pragma mark Plot Data Source Methods
-
--(NSUInteger)numberOfRecordsForPlot:(CPTPlot *)plot
-{
- return 16;
-}
-
--(id)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index
-{
- NSNumber *num = nil;
-
- if ( [plot isKindOfClass:[CPTBarPlot class]] ) {
- switch ( fieldEnum ) {
- case CPTBarPlotFieldBarLocation:
- num = @(index);
- break;
-
- case CPTBarPlotFieldBarTip:
- num = @( (index + 1) * (index + 1) );
- if ( [plot.identifier isEqual:@"Bar Plot 2"] ) {
- num = @(num.integerValue - 10);
- }
- break;
- }
- }
-
- return num;
-}
-
-@end
diff --git a/examples/CPTTestApp-iPhone-SpeedTest/Classes/CPTTestAppPieChartController.h b/examples/CPTTestApp-iPhone-SpeedTest/Classes/CPTTestAppPieChartController.h
deleted file mode 100644
index 66cafd708..000000000
--- a/examples/CPTTestApp-iPhone-SpeedTest/Classes/CPTTestAppPieChartController.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#import "CorePlot-CocoaTouch.h"
-#import
-
-@interface CPTTestAppPieChartController : UIViewController
-
-@property (nonatomic, readwrite, strong) NSArray *dataForChart;
-
-@end
diff --git a/examples/CPTTestApp-iPhone-SpeedTest/Classes/CPTTestAppPieChartController.m b/examples/CPTTestApp-iPhone-SpeedTest/Classes/CPTTestAppPieChartController.m
deleted file mode 100644
index 770569465..000000000
--- a/examples/CPTTestApp-iPhone-SpeedTest/Classes/CPTTestAppPieChartController.m
+++ /dev/null
@@ -1,128 +0,0 @@
-#import "CPTTestAppPieChartController.h"
-
-@interface CPTTestAppPieChartController()
-
-@property (nonatomic, readwrite, strong) CPTXYGraph *pieChart;
-@property (nonatomic, readonly, assign) CGFloat pieMargin;
-@property (nonatomic, readonly, assign) CGFloat pieRadius;
-@property (nonatomic, readonly, assign) CGPoint pieCenter;
-
-@end
-
-#pragma mark -
-
-@implementation CPTTestAppPieChartController
-
-@synthesize dataForChart;
-@synthesize pieChart;
-
--(CGFloat)pieMargin
-{
- return self.pieChart.plotAreaFrame.borderLineStyle.lineWidth + CPTFloat(20.0);
-}
-
--(CGFloat)pieRadius
-{
- CGRect plotBounds = self.pieChart.plotAreaFrame.bounds;
-
- return MIN(plotBounds.size.width, plotBounds.size.height) / CPTFloat(2.0) - self.pieMargin;
-}
-
--(CGPoint)pieCenter
-{
- CGRect plotBounds = self.pieChart.plotAreaFrame.bounds;
-
- CGFloat y = 0.0;
-
- if ( plotBounds.size.width > plotBounds.size.height ) {
- y = 0.45;
- }
- else {
- y = (self.pieRadius + self.pieMargin) / plotBounds.size.height;
- }
-
- return CGPointMake(0.5, y);
-}
-
--(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
-{
- CPTPieChart *piePlot = (CPTPieChart *)[self.pieChart plotWithIdentifier:@"Pie Chart 1"];
-
- piePlot.pieRadius = self.pieRadius;
- piePlot.centerAnchor = self.pieCenter;
-}
-
-#pragma mark -
-#pragma mark Initialization and teardown
-
--(void)viewDidLoad
-{
- [super viewDidLoad];
-
- // Create pieChart from theme
- CPTXYGraph *newGraph = [[CPTXYGraph alloc] initWithFrame:CGRectZero];
- CPTTheme *theme = [CPTTheme themeNamed:kCPTDarkGradientTheme];
- [newGraph applyTheme:theme];
- self.pieChart = newGraph;
-
- CPTGraphHostingView *hostingView = (CPTGraphHostingView *)self.view;
- hostingView.hostedGraph = newGraph;
-
- newGraph.paddingLeft = 20.0;
- newGraph.paddingTop = 20.0;
- newGraph.paddingRight = 20.0;
- newGraph.paddingBottom = 20.0;
-
- newGraph.plotAreaFrame.masksToBorder = NO;
-
- newGraph.axisSet = nil;
-
- // Add pie chart
- CPTPieChart *piePlot = [[CPTPieChart alloc] init];
- piePlot.dataSource = self;
- piePlot.pieRadius = 1.0;
- piePlot.identifier = @"Pie Chart 1";
- piePlot.startAngle = CPTFloat(M_PI_4);
- piePlot.sliceDirection = CPTPieDirectionCounterClockwise;
- [newGraph addPlot:piePlot];
-
- // Add some initial data
- self.dataForChart = @[@20.0, @30.0, @60.0];
-
- [newGraph layoutIfNeeded];
- [self didRotateFromInterfaceOrientation:UIInterfaceOrientationPortrait];
-
-#ifdef PERFORMANCE_TEST
- [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(changePlotRange) userInfo:nil repeats:YES];
-#endif
-}
-
--(void)didReceiveMemoryWarning
-{
- [super didReceiveMemoryWarning]; // Releases the view if it doesn't have a superview
- // Release anything that's not essential, such as cached data
-}
-
-#pragma mark -
-#pragma mark Plot Data Source Methods
-
--(NSUInteger)numberOfRecordsForPlot:(CPTPlot *)plot
-{
- return self.dataForChart.count;
-}
-
--(id)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index
-{
- if ( index >= self.dataForChart.count ) {
- return nil;
- }
-
- if ( fieldEnum == CPTPieChartFieldSliceWidth ) {
- return (self.dataForChart)[index];
- }
- else {
- return @(index);
- }
-}
-
-@end
diff --git a/examples/CPTTestApp-iPhone-SpeedTest/Classes/CPTTestAppScatterPlotController.h b/examples/CPTTestApp-iPhone-SpeedTest/Classes/CPTTestAppScatterPlotController.h
deleted file mode 100644
index 22e5746e1..000000000
--- a/examples/CPTTestApp-iPhone-SpeedTest/Classes/CPTTestAppScatterPlotController.h
+++ /dev/null
@@ -1,15 +0,0 @@
-//
-// CPTTestAppScatterPlotController.h
-// CPTTestApp-iPhone
-//
-// Created by Brad Larson on 5/11/2009.
-//
-
-#import "CorePlot-CocoaTouch.h"
-#import
-
-#define NUM_POINTS 500
-
-@interface CPTTestAppScatterPlotController : UIViewController
-
-@end
diff --git a/examples/CPTTestApp-iPhone-SpeedTest/Classes/CPTTestAppScatterPlotController.m b/examples/CPTTestApp-iPhone-SpeedTest/Classes/CPTTestAppScatterPlotController.m
deleted file mode 100644
index 894327c7b..000000000
--- a/examples/CPTTestApp-iPhone-SpeedTest/Classes/CPTTestAppScatterPlotController.m
+++ /dev/null
@@ -1,211 +0,0 @@
-//
-// CPTTestAppScatterPlotController.m
-// CPTTestApp-iPhone
-//
-// Created by Brad Larson on 5/11/2009.
-//
-
-#import "CPTTestAppScatterPlotController.h"
-#import "TestXYTheme.h"
-
-#define USE_DOUBLEFASTPATH true
-#define USE_ONEVALUEPATH false
-
-@interface CPTTestAppScatterPlotController()
-
-@property (nonatomic, readwrite, strong) CPTXYGraph *graph;
-
-@property (nonatomic, readwrite, strong) NSData *xxx;
-@property (nonatomic, readwrite, strong) NSData *yyy1;
-@property (nonatomic, readwrite, strong) NSData *yyy2;
-
-@end
-
-#pragma mark -
-
-@implementation CPTTestAppScatterPlotController
-
-@synthesize graph;
-
-@synthesize xxx;
-@synthesize yyy1;
-@synthesize yyy2;
-
-#pragma mark -
-#pragma mark Initialization and teardown
-
--(void)viewDidLoad
-{
- [super viewDidLoad];
-
- // Create graph from a custom theme
- CPTXYGraph *newGraph = [[CPTXYGraph alloc] initWithFrame:CGRectZero];
- CPTTheme *theme = [[TestXYTheme alloc] init];
- [newGraph applyTheme:theme];
- self.graph = newGraph;
-
- newGraph.paddingLeft = 10.0;
- newGraph.paddingTop = 20.0;
- newGraph.paddingRight = 10.0;
- newGraph.paddingBottom = 10.0;
-
- CPTGraphHostingView *hostingView = (CPTGraphHostingView *)self.view;
- hostingView.hostedGraph = newGraph;
-
- newGraph.plotAreaFrame.masksToBorder = NO;
-
- // Setup plot space
- CPTXYPlotSpace *plotSpace = (CPTXYPlotSpace *)newGraph.defaultPlotSpace;
- plotSpace.allowsUserInteraction = NO;
- plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble(0.0) length:CPTDecimalFromDouble(NUM_POINTS)];
- plotSpace.yRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble(0.0) length:CPTDecimalFromDouble(NUM_POINTS)];
-
- // Create a blue plot area
- CPTScatterPlot *boundLinePlot = [[CPTScatterPlot alloc] init];
- boundLinePlot.identifier = @"Blue Plot";
-
- CPTMutableLineStyle *lineStyle = [boundLinePlot.dataLineStyle mutableCopy];
- lineStyle.lineWidth = 1.0;
- lineStyle.lineColor = [CPTColor blueColor];
- boundLinePlot.dataLineStyle = lineStyle;
-
- boundLinePlot.dataSource = self;
- [newGraph addPlot:boundLinePlot];
-
- // Create a green plot area
- CPTScatterPlot *dataSourceLinePlot = [[CPTScatterPlot alloc] init];
- dataSourceLinePlot.identifier = @"Green Plot";
-
- lineStyle = [dataSourceLinePlot.dataLineStyle mutableCopy];
- lineStyle.lineWidth = 1.0;
- lineStyle.lineColor = [CPTColor greenColor];
- dataSourceLinePlot.dataLineStyle = lineStyle;
-
- dataSourceLinePlot.dataSource = self;
- [newGraph addPlot:dataSourceLinePlot];
-
- // Create plot data
- NSMutableData *xData = [[NSMutableData alloc] initWithCapacity:NUM_POINTS * sizeof(double)];
- NSMutableData *y1Data = [[NSMutableData alloc] initWithCapacity:NUM_POINTS * sizeof(double)];
- NSMutableData *y2Data = [[NSMutableData alloc] initWithCapacity:NUM_POINTS * sizeof(double)];
-
- double *xArray = xData.mutableBytes;
- double *y1Array = y1Data.mutableBytes;
- double *y2Array = y2Data.mutableBytes;
-
- for ( NSUInteger i = 0; i < NUM_POINTS; i++ ) {
- xArray[i] = i;
- y1Array[i] = (NUM_POINTS / 3) * (arc4random() / (double)UINT32_MAX);
- y2Array[i] = (NUM_POINTS / 3) * (arc4random() / (double)UINT32_MAX) + NUM_POINTS / 3;
- }
-
- self.xxx = xData;
- self.yyy1 = y1Data;
- self.yyy2 = y2Data;
-
-#define PERFORMANCE_TEST1
-#ifdef PERFORMANCE_TEST1
- [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(changePlotRange) userInfo:nil repeats:YES];
-#endif
-
-#ifdef PERFORMANCE_TEST2
- [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(reloadPlots) userInfo:nil repeats:YES];
-#endif
-}
-
--(void)reloadPlots
-{
- NSArray *plots = [self.graph allPlots];
-
- for ( CPTPlot *plot in plots ) {
- [plot reloadData];
- }
-}
-
--(void)changePlotRange
-{
- // Setup plot space
- CPTXYPlotSpace *plotSpace = (CPTXYPlotSpace *)self.graph.defaultPlotSpace;
-
- double ylen = NUM_POINTS * (arc4random() / (double)UINT32_MAX);
-
- plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble(0.0) length:CPTDecimalFromDouble(NUM_POINTS)];
- plotSpace.yRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble(0.0) length:CPTDecimalFromDouble(ylen)];
-}
-
-#pragma mark -
-#pragma mark Plot Data
-
--(const double *)valuesForPlotWithIdentifier:(id)identifier field:(NSUInteger)fieldEnum
-{
- if ( fieldEnum == 0 ) {
- return (const double *)self.xxx.bytes;
- }
- else {
- if ( [identifier isEqualToString:@"Blue Plot"] ) {
- return (const double *)self.yyy1.bytes;
- }
- else {
- return (const double *)self.yyy2.bytes;
- }
- }
-}
-
-#pragma mark -
-#pragma mark Plot Data Source Methods
-
--(NSUInteger)numberOfRecordsForPlot:(CPTPlot *)plot
-{
- return NUM_POINTS;
-}
-
-#if USE_DOUBLEFASTPATH
-#if USE_ONEVALUEPATH
--(double)doubleForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)indx
-{
- double *values = [self valuesForPlotWithIdentifier:[plot identifier] field:fieldEnum];
-
- return values[indx];
-}
-
-#else
--(double *)doublesForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndexRange:(NSRange)indexRange
-{
- double *values = [self valuesForPlotWithIdentifier:[plot identifier] field:fieldEnum];
-
- return values + indexRange.location;
-}
-#endif
-
-#else
-#if USE_ONEVALUEPATH
--(id)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)indx
-{
- NSNumber *num = nil;
- double *values = [self valuesForPlotWithIdentifier:[plot identifier] field:fieldEnum];
-
- if ( values ) {
- num = @(values[indx]);
- }
- return num;
-}
-
-#else
--(NSArray *)numbersForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndexRange:(NSRange)indexRange
-{
- double *values = [self valuesForPlotWithIdentifier:[plot identifier] field:fieldEnum];
-
- if ( values == NULL ) {
- return nil;
- }
-
- NSMutableArray *returnArray = [NSMutableArray arrayWithCapacity:indexRange.length];
- for ( NSUInteger i = indexRange.location; i < indexRange.location + indexRange.length; i++ ) {
- [returnArray addObject:@(values[i])];
- }
- return returnArray;
-}
-#endif
-#endif
-
-@end
diff --git a/examples/CPTTestApp-iPhone-SpeedTest/Classes/CPTTestApp_iPhoneAppDelegate.h b/examples/CPTTestApp-iPhone-SpeedTest/Classes/CPTTestApp_iPhoneAppDelegate.h
deleted file mode 100644
index d985da722..000000000
--- a/examples/CPTTestApp-iPhone-SpeedTest/Classes/CPTTestApp_iPhoneAppDelegate.h
+++ /dev/null
@@ -1,15 +0,0 @@
-//
-// CPTTestApp_iPhoneAppDelegate.h
-// CPTTestApp-iPhone
-//
-// Toolbar icons in the application are courtesy of Joseph Wain / glyphish.com
-// See the license file in the GlyphishIcons directory for more information on these icons
-
-#import
-
-@interface CPTTestApp_iPhoneAppDelegate : NSObject
-
-@property (nonatomic, readwrite, strong) IBOutlet UIWindow *window;
-@property (nonatomic, readwrite, strong) IBOutlet UITabBarController *tabBarController;
-
-@end
diff --git a/examples/CPTTestApp-iPhone-SpeedTest/Classes/CPTTestApp_iPhoneAppDelegate.m b/examples/CPTTestApp-iPhone-SpeedTest/Classes/CPTTestApp_iPhoneAppDelegate.m
deleted file mode 100644
index 0203992bc..000000000
--- a/examples/CPTTestApp-iPhone-SpeedTest/Classes/CPTTestApp_iPhoneAppDelegate.m
+++ /dev/null
@@ -1,32 +0,0 @@
-//
-// CPTTestApp_iPhoneAppDelegate.m
-// CPTTestApp-iPhone
-//
-// Created by Brad Larson on 5/11/2009.
-
-#import "CPTTestApp_iPhoneAppDelegate.h"
-
-@implementation CPTTestApp_iPhoneAppDelegate
-
-@synthesize window;
-@synthesize tabBarController;
-
--(void)applicationDidFinishLaunching:(UIApplication *)application
-{
- self.window.rootViewController = self.tabBarController;
- [self.window makeKeyAndVisible];
-}
-
-/*
- * // Optional UITabBarControllerDelegate method
- * - (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
- * }
- */
-
-/*
- * // Optional UITabBarControllerDelegate method
- * - (void)tabBarController:(UITabBarController *)tabBarController didEndCustomizingViewControllers:(NSArray *)viewControllers changed:(BOOL)changed {
- * }
- */
-
-@end
diff --git a/examples/CPTTestApp-iPhone-SpeedTest/Classes/TestXYTheme.h b/examples/CPTTestApp-iPhone-SpeedTest/Classes/TestXYTheme.h
deleted file mode 100644
index c20a51e5f..000000000
--- a/examples/CPTTestApp-iPhone-SpeedTest/Classes/TestXYTheme.h
+++ /dev/null
@@ -1,17 +0,0 @@
-//
-// TestXYTheme.h
-// CPTTestApp-iPhone
-//
-// Created by Joan on 03/06/10.
-// Copyright 2010 __MyCompanyName__. All rights reserved.
-//
-
-#import
-
-#import "CorePlot-CocoaTouch.h"
-
-@interface TestXYTheme : CPTTheme
-{
-}
-
-@end
diff --git a/examples/CPTTestApp-iPhone-SpeedTest/Classes/TestXYTheme.m b/examples/CPTTestApp-iPhone-SpeedTest/Classes/TestXYTheme.m
deleted file mode 100644
index f5eac3860..000000000
--- a/examples/CPTTestApp-iPhone-SpeedTest/Classes/TestXYTheme.m
+++ /dev/null
@@ -1,103 +0,0 @@
-//
-// TestXYTheme.m
-// CPTTestApp-iPhone
-//
-// Created by Joan on 03/06/10.
-// Copyright 2010 __MyCompanyName__. All rights reserved.
-//
-
-#import "TestXYTheme.h"
-
-@implementation TestXYTheme
-
-+(NSString *)name
-{
- return @"TestXYTheme";
-}
-
--(instancetype)init
-{
- if ( (self = [super init]) ) {
- self.graphClass = [CPTXYGraph class];
- }
- return self;
-}
-
-#pragma mark -
-
--(void)applyThemeToAxis:(CPTXYAxis *)axis usingMajorLineStyle:(CPTLineStyle *)majorLineStyle
- minorLineStyle:(CPTLineStyle *)minorLineStyle majorGridLineStyle:majorGridLineStyle textStyle:(CPTTextStyle *)textStyle
-{
- axis.labelingPolicy = CPTAxisLabelingPolicyFixedInterval;
- axis.majorIntervalLength = CPTDecimalFromDouble(20.0);
- axis.orthogonalCoordinateDecimal = CPTDecimalFromDouble(0.0);
- axis.tickDirection = CPTSignNone;
- axis.minorTicksPerInterval = 3;
- axis.majorTickLineStyle = majorLineStyle;
- axis.minorTickLineStyle = minorLineStyle;
- axis.axisLineStyle = majorLineStyle;
- axis.majorTickLength = 5.0;
- axis.minorTickLength = 3.0;
- axis.labelTextStyle = textStyle;
- axis.titleTextStyle = textStyle;
- //axis.labelFormatter = numberFormatter ;
- axis.majorGridLineStyle = majorGridLineStyle;
- axis.labelingPolicy = CPTAxisLabelingPolicyAutomatic;
-}
-
--(void)applyThemeToBackground:(CPTGraph *)graph
-{
- CPTColor *endColor = [CPTColor colorWithGenericGray:CPTFloat(0.1)];
- CPTGradient *graphGradient = [CPTGradient gradientWithBeginningColor:endColor endingColor:endColor];
-
- graphGradient = [graphGradient addColorStop:[CPTColor colorWithGenericGray:CPTFloat(0.2)] atPosition:CPTFloat(0.3)];
- graphGradient = [graphGradient addColorStop:[CPTColor colorWithGenericGray:CPTFloat(0.3)] atPosition:CPTFloat(0.5)];
- graphGradient = [graphGradient addColorStop:[CPTColor colorWithGenericGray:CPTFloat(0.2)] atPosition:CPTFloat(0.6)];
- graphGradient.angle = 90.0;
- graph.fill = [CPTFill fillWithGradient:graphGradient];
-}
-
--(void)applyThemeToPlotArea:(CPTPlotAreaFrame *)plotAreaFrame
-{
- CPTGradient *gradient = [CPTGradient gradientWithBeginningColor:[CPTColor colorWithGenericGray:CPTFloat(0.1)] endingColor:[CPTColor colorWithGenericGray:CPTFloat(0.3)]];
-
- gradient.angle = 90.0;
- plotAreaFrame.fill = [CPTFill fillWithGradient:gradient];
-
- plotAreaFrame.paddingLeft = 50;
- plotAreaFrame.paddingTop = 10;
- plotAreaFrame.paddingRight = 20;
- plotAreaFrame.paddingBottom = 30;
-}
-
--(void)applyThemeToAxisSet:(CPTAxisSet *)axisSet
-{
- CPTMutableLineStyle *majorLineStyle = [CPTMutableLineStyle lineStyle];
-
- majorLineStyle.lineCap = kCGLineCapSquare;
- majorLineStyle.lineColor = [CPTColor grayColor];
- majorLineStyle.lineWidth = 2.0;
-
- CPTMutableLineStyle *minorLineStyle = [CPTMutableLineStyle lineStyle];
- minorLineStyle.lineCap = kCGLineCapSquare;
- minorLineStyle.lineColor = [CPTColor grayColor];
- minorLineStyle.lineWidth = 1.0;
-
- CPTMutableLineStyle *majorGridLineStyle = [CPTMutableLineStyle lineStyle];
- majorGridLineStyle.lineWidth = CPTFloat(0.1);
- majorGridLineStyle.lineColor = [CPTColor lightGrayColor];
-
- CPTMutableLineStyle *minorGridLineStyle = [CPTMutableLineStyle lineStyle];
- minorGridLineStyle.lineWidth = 0.25;
- minorGridLineStyle.lineColor = [CPTColor blueColor];
-
- CPTMutableTextStyle *whiteTextStyle = [[CPTMutableTextStyle alloc] init];
- whiteTextStyle.color = [CPTColor whiteColor];
- whiteTextStyle.fontSize = 14.0;
-
- CPTXYAxisSet *xyAxisSet = (CPTXYAxisSet *)axisSet;
- [self applyThemeToAxis:xyAxisSet.xAxis usingMajorLineStyle:majorLineStyle minorLineStyle:minorLineStyle majorGridLineStyle:majorGridLineStyle textStyle:whiteTextStyle];
- [self applyThemeToAxis:xyAxisSet.yAxis usingMajorLineStyle:majorLineStyle minorLineStyle:minorLineStyle majorGridLineStyle:majorGridLineStyle textStyle:whiteTextStyle];
-}
-
-@end
diff --git a/examples/CPTTestApp-iPhone-SpeedTest/GlyphishIcons/16-line-chart.png b/examples/CPTTestApp-iPhone-SpeedTest/GlyphishIcons/16-line-chart.png
deleted file mode 100644
index 37b48e956..000000000
Binary files a/examples/CPTTestApp-iPhone-SpeedTest/GlyphishIcons/16-line-chart.png and /dev/null differ
diff --git a/examples/CPTTestApp-iPhone-SpeedTest/GlyphishIcons/17-bar-chart.png b/examples/CPTTestApp-iPhone-SpeedTest/GlyphishIcons/17-bar-chart.png
deleted file mode 100644
index f3fbebbc2..000000000
Binary files a/examples/CPTTestApp-iPhone-SpeedTest/GlyphishIcons/17-bar-chart.png and /dev/null differ
diff --git a/examples/CPTTestApp-iPhone-SpeedTest/GlyphishIcons/62-contrast.png b/examples/CPTTestApp-iPhone-SpeedTest/GlyphishIcons/62-contrast.png
deleted file mode 100644
index 98ec0ad25..000000000
Binary files a/examples/CPTTestApp-iPhone-SpeedTest/GlyphishIcons/62-contrast.png and /dev/null differ
diff --git a/examples/CPTTestApp-iPhone-SpeedTest/GlyphishIcons/Read me first - license.txt b/examples/CPTTestApp-iPhone-SpeedTest/GlyphishIcons/Read me first - license.txt
deleted file mode 100644
index 5fa3c99ad..000000000
--- a/examples/CPTTestApp-iPhone-SpeedTest/GlyphishIcons/Read me first - license.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-Created by Joseph Wain (see http://penandthink.com) at and probably downloaded from http://glyphish.com
-
-This work is licensed under the Creative Commons Attribution 3.0 United States License. To view a copy of this license, visit http://creativecommons.org/licenses/by/3.0/us/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.
-
-You are free to share it and to remix it remix under the following conditions:
-
-* You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work).
-* For any reuse or distribution, you must make clear to others the license terms of this work. The best way to do this is with a link to http://creativecommons.org/licenses/by/3.0/us/
-* Any of the above conditions can be waived if you get permission from the copyright holder (send me an email!).
-* Apart from the remix rights granted under this license, nothing in this license impairs or restricts the author's moral rights.
-
-ATTRIBUTION -- a note reading "icons by Joseph Wain / glyphish.com" or similar, plus a link back to glyphish.com from your app's website, is the preferred form of attribution. Also acceptable would be, like, a link from within your iPhone application, or from the iTunes store page, but those aren't as useful to other people. If none of these work for you, please contact hello@glyphish.com and we can work something out.
-
-USE WITHOUT ATTRIBUTION -- If attribution is not possible, workable or desirable for your application, contact hello@glyphish.com for commercial non-attributed licensing terms.
\ No newline at end of file
diff --git a/examples/CPTTestApp-iPhone-SpeedTest/Info.plist b/examples/CPTTestApp-iPhone-SpeedTest/Info.plist
deleted file mode 100644
index 9f9e720f2..000000000
--- a/examples/CPTTestApp-iPhone-SpeedTest/Info.plist
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
-
- CFBundleDevelopmentRegion
- English
- CFBundleDisplayName
- ${PRODUCT_NAME}
- CFBundleExecutable
- ${EXECUTABLE_NAME}
- CFBundleIcons~ipad
-
- CFBundleIdentifier
- com.SweetWilliam.CPTTestApp
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundleName
- ${PRODUCT_NAME}
- CFBundlePackageType
- APPL
- CFBundleSignature
- ????
- CFBundleVersion
- 1.0
- LSRequiresIPhoneOS
-
- NSMainNibFile
- MainWindow
- UILaunchStoryboardName
- Launch Screen
- UISupportedInterfaceOrientations
-
- UIInterfaceOrientationPortrait
- UIInterfaceOrientationPortraitUpsideDown
- UIInterfaceOrientationLandscapeLeft
- UIInterfaceOrientationLandscapeRight
-
-
-
diff --git a/examples/CPTTestApp-iPhone-SpeedTest/Launch Screen.xib b/examples/CPTTestApp-iPhone-SpeedTest/Launch Screen.xib
deleted file mode 100644
index 8337721bd..000000000
--- a/examples/CPTTestApp-iPhone-SpeedTest/Launch Screen.xib
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- CPTTestApp-iPhone
-Speed Test
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/examples/CPTTestApp-iPhone-SpeedTest/MainWindow.xib b/examples/CPTTestApp-iPhone-SpeedTest/MainWindow.xib
deleted file mode 100644
index 97a8aead0..000000000
--- a/examples/CPTTestApp-iPhone-SpeedTest/MainWindow.xib
+++ /dev/null
@@ -1,436 +0,0 @@
-
-
-
- 528
- 12C60
- 2843
- 1187.34
- 625.00
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- 1929
-
-
- YES
- IBProxyObject
- IBUICustomObject
- IBUITabBar
- IBUITabBarController
- IBUITabBarItem
- IBUIViewController
- IBUIWindow
-
-
- YES
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
- PluginDependencyRecalculationVersion
-
-
-
- YES
-
- IBFilesOwner
- IBCocoaTouchFramework
-
-
- IBFirstResponder
- IBCocoaTouchFramework
-
-
- IBCocoaTouchFramework
-
-
-
- 1316
-
- {320, 480}
-
-
-
- 1
- MSAxIDEAA
-
- NO
- NO
-
- IBCocoaTouchFramework
- YES
- YES
-
-
-
-
-
- 1
- 1
-
- IBCocoaTouchFramework
- NO
-
- Pie Chart
-
- Pie Chart
-
- NSImage
- 62-contrast.png
-
- IBCocoaTouchFramework
-
-
- YES
-
-
- PieChart
-
- 1
- 1
-
- IBCocoaTouchFramework
- NO
-
-
- YES
-
- Scatter Plot
-
- Scatter Plot
-
- NSImage
- 16-line-chart.png
-
- IBCocoaTouchFramework
-
-
- ScatterPlot
-
- 1
- 1
-
- IBCocoaTouchFramework
- NO
-
-
-
- Bar Chart
-
- NSImage
- 17-bar-chart.png
-
- IBCocoaTouchFramework
-
-
- BarChart
-
- 1
- 1
-
- IBCocoaTouchFramework
- NO
-
-
-
-
-
- 266
- {{129, 330}, {163, 49}}
-
- 3
- MCAwAA
-
- NO
- IBCocoaTouchFramework
-
-
-
-
-
- YES
-
-
- delegate
-
-
-
- 99
-
-
-
- window
-
-
-
- 9
-
-
-
- tabBarController
-
-
-
- 113
-
-
-
-
- YES
-
- 0
-
-
-
-
-
- 2
-
-
- YES
-
-
-
-
- -1
-
-
- File's Owner
-
-
- 3
-
-
-
-
- 106
-
-
- YES
-
-
-
-
-
-
-
-
- 107
-
-
-
-
- 108
-
-
- YES
-
-
-
-
-
- 109
-
-
- YES
-
-
-
-
-
- 110
-
-
-
-
- 111
-
-
-
-
- -2
-
-
-
-
- 125
-
-
- YES
-
-
-
-
-
- 126
-
-
-
-
-
-
- YES
-
- YES
- -1.CustomClassName
- -1.IBPluginDependency
- -2.CustomClassName
- -2.IBPluginDependency
- 106.IBPluginDependency
- 107.IBPluginDependency
- 108.CustomClassName
- 108.IBPluginDependency
- 109.CustomClassName
- 109.IBPluginDependency
- 110.IBPluginDependency
- 111.IBPluginDependency
- 125.CustomClassName
- 125.IBPluginDependency
- 126.IBPluginDependency
- 2.IBAttributePlaceholdersKey
- 2.IBPluginDependency
- 3.CustomClassName
- 3.IBPluginDependency
-
-
- YES
- UIApplication
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- UIResponder
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- CPTTestAppScatterPlotController
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- CPTTestAppBarChartController
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- CPTTestAppPieChartController
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
- YES
-
-
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- CPTTestApp_iPhoneAppDelegate
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
-
- YES
-
-
-
-
-
- YES
-
-
-
-
- 126
-
-
-
- YES
-
- CPTTestAppBarChartController
- UIViewController
-
- IBProjectSource
- ./Classes/CPTTestAppBarChartController.h
-
-
-
- CPTTestAppPieChartController
- UIViewController
-
- IBProjectSource
- ./Classes/CPTTestAppPieChartController.h
-
-
-
- CPTTestAppScatterPlotController
- UIViewController
-
- IBProjectSource
- ./Classes/CPTTestAppScatterPlotController.h
-
-
-
- CPTTestApp_iPhoneAppDelegate
- NSObject
-
- YES
-
- YES
- tabBarController
- window
-
-
- YES
- UITabBarController
- UIWindow
-
-
-
- YES
-
- YES
- tabBarController
- window
-
-
- YES
-
- tabBarController
- UITabBarController
-
-
- window
- UIWindow
-
-
-
-
- IBProjectSource
- ./Classes/CPTTestApp_iPhoneAppDelegate.h
-
-
-
-
- 0
- IBCocoaTouchFramework
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
-
-
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
-
-
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3
-
-
- YES
- 3
-
- YES
-
- YES
- 16-line-chart.png
- 17-bar-chart.png
- 62-contrast.png
-
-
- YES
- {30, 24}
- {29, 24}
- {20, 20}
-
-
- 1929
-
-
diff --git a/examples/CPTTestApp-iPhone-SpeedTest/PieChart.xib b/examples/CPTTestApp-iPhone-SpeedTest/PieChart.xib
deleted file mode 100644
index 0793e4bdd..000000000
--- a/examples/CPTTestApp-iPhone-SpeedTest/PieChart.xib
+++ /dev/null
@@ -1,346 +0,0 @@
-
-
-
- 768
- 10F569
- 804
- 1038.29
- 461.00
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- 123
-
-
- YES
-
-
- YES
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
- YES
-
- YES
-
-
- YES
-
-
-
- YES
-
- IBFilesOwner
- IBCocoaTouchFramework
-
-
- IBFirstResponder
- IBCocoaTouchFramework
-
-
-
- 274
- {320, 411}
-
- 3
- MQA
-
- 2
-
-
-
-
- IBCocoaTouchFramework
-
-
-
-
- YES
-
-
- view
-
-
-
- 3
-
-
-
-
- YES
-
- 0
-
-
-
-
-
- 1
-
-
- YES
-
-
-
-
- -1
-
-
- File's Owner
-
-
- -2
-
-
-
-
-
-
- YES
-
- YES
- -1.CustomClassName
- -2.CustomClassName
- 1.CustomClassName
- 1.IBEditorWindowLastContentRect
- 1.IBPluginDependency
-
-
- YES
- CPTTestAppPieChartController
- UIResponder
- CPTGraphHostingView
- {{158, 204}, {320, 480}}
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
-
- YES
-
-
- YES
-
-
-
-
- YES
-
-
- YES
-
-
-
- 9
-
-
-
- YES
-
- CPTTestAppPieChartController
- UIViewController
-
- IBProjectSource
- Classes/CPTTestAppPieChartController.h
-
-
-
-
- YES
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSError.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSFileManager.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSKeyValueCoding.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSKeyValueObserving.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSKeyedArchiver.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSObject.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSRunLoop.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSThread.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSURL.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSURLConnection.h
-
-
-
- NSObject
-
- IBFrameworkSource
- QuartzCore.framework/Headers/CAAnimation.h
-
-
-
- NSObject
-
- IBFrameworkSource
- QuartzCore.framework/Headers/CALayer.h
-
-
-
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UIAccessibility.h
-
-
-
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UINibLoading.h
-
-
-
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UIResponder.h
-
-
-
- UIResponder
- NSObject
-
-
-
- UISearchBar
- UIView
-
- IBFrameworkSource
- UIKit.framework/Headers/UISearchBar.h
-
-
-
- UISearchDisplayController
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UISearchDisplayController.h
-
-
-
- UIView
-
- IBFrameworkSource
- UIKit.framework/Headers/UITextField.h
-
-
-
- UIView
- UIResponder
-
- IBFrameworkSource
- UIKit.framework/Headers/UIView.h
-
-
-
- UIViewController
-
- IBFrameworkSource
- UIKit.framework/Headers/UINavigationController.h
-
-
-
- UIViewController
-
- IBFrameworkSource
- UIKit.framework/Headers/UIPopoverController.h
-
-
-
- UIViewController
-
- IBFrameworkSource
- UIKit.framework/Headers/UISplitViewController.h
-
-
-
- UIViewController
-
- IBFrameworkSource
- UIKit.framework/Headers/UITabBarController.h
-
-
-
- UIViewController
- UIResponder
-
- IBFrameworkSource
- UIKit.framework/Headers/UIViewController.h
-
-
-
-
- 0
- IBCocoaTouchFramework
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
-
-
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
-
-
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3
-
-
- YES
- CPTTestApp-iPhone.xcodeproj
- 3
- 123
-
-
diff --git a/examples/CPTTestApp-iPhone-SpeedTest/ScatterPlot.xib b/examples/CPTTestApp-iPhone-SpeedTest/ScatterPlot.xib
deleted file mode 100644
index acd2d4ba7..000000000
--- a/examples/CPTTestApp-iPhone-SpeedTest/ScatterPlot.xib
+++ /dev/null
@@ -1,356 +0,0 @@
-
-
-
- 528
- 10F569
- 804
- 1038.29
- 461.00
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- 123
-
-
- YES
-
-
- YES
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
- YES
-
- YES
-
-
- YES
-
-
-
- YES
-
- IBFilesOwner
- IBCocoaTouchFramework
-
-
- IBFirstResponder
- IBCocoaTouchFramework
-
-
-
- 274
- {320, 460}
-
- 3
- MQA
-
- 2
-
-
-
- IBCocoaTouchFramework
-
-
-
-
- YES
-
-
- view
-
-
-
- 5
-
-
-
-
- YES
-
- 0
-
-
-
-
-
- 1
-
-
- YES
-
-
-
-
- -1
-
-
- File's Owner
-
-
- -2
-
-
-
-
-
-
- YES
-
- YES
- -1.CustomClassName
- -2.CustomClassName
- 1.CustomClassName
- 1.IBEditorWindowLastContentRect
- 1.IBPluginDependency
-
-
- YES
- CPTTestAppScatterPlotController
- UIResponder
- CPTGraphHostingView
- {{430, 168}, {320, 480}}
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
-
- YES
-
-
- YES
-
-
-
-
- YES
-
-
- YES
-
-
-
- 5
-
-
-
- YES
-
- CPTTestAppScatterPlotController
- UIViewController
-
- IBProjectSource
- Classes/CPTTestAppScatterPlotController.h
-
-
-
-
- YES
-
- CPTGraphHostingView
- UIView
-
- IBDocumentRelativeSource
- ../../framework/iPhoneOnly/CPTGraphHostingView.h
-
-
-
-
- YES
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSError.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSFileManager.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSKeyValueCoding.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSKeyValueObserving.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSKeyedArchiver.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSObject.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSRunLoop.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSThread.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSURL.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSURLConnection.h
-
-
-
- NSObject
-
- IBFrameworkSource
- QuartzCore.framework/Headers/CAAnimation.h
-
-
-
- NSObject
-
- IBFrameworkSource
- QuartzCore.framework/Headers/CALayer.h
-
-
-
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UIAccessibility.h
-
-
-
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UINibLoading.h
-
-
-
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UIResponder.h
-
-
-
- UIResponder
- NSObject
-
-
-
- UISearchBar
- UIView
-
- IBFrameworkSource
- UIKit.framework/Headers/UISearchBar.h
-
-
-
- UISearchDisplayController
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UISearchDisplayController.h
-
-
-
- UIView
-
- IBFrameworkSource
- UIKit.framework/Headers/UITextField.h
-
-
-
- UIView
- UIResponder
-
- IBFrameworkSource
- UIKit.framework/Headers/UIView.h
-
-
-
- UIViewController
-
- IBFrameworkSource
- UIKit.framework/Headers/UINavigationController.h
-
-
-
- UIViewController
-
- IBFrameworkSource
- UIKit.framework/Headers/UIPopoverController.h
-
-
-
- UIViewController
-
- IBFrameworkSource
- UIKit.framework/Headers/UISplitViewController.h
-
-
-
- UIViewController
-
- IBFrameworkSource
- UIKit.framework/Headers/UITabBarController.h
-
-
-
- UIViewController
- UIResponder
-
- IBFrameworkSource
- UIKit.framework/Headers/UIViewController.h
-
-
-
-
- 0
- IBCocoaTouchFramework
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
-
-
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
-
-
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3
-
-
- YES
- CPTTestApp-iPhone.xcodeproj
- 3
- 123
-
-
diff --git a/examples/CPTTestApp-iPhone-SpeedTest/main.m b/examples/CPTTestApp-iPhone-SpeedTest/main.m
deleted file mode 100644
index 762bdbbff..000000000
--- a/examples/CPTTestApp-iPhone-SpeedTest/main.m
+++ /dev/null
@@ -1,17 +0,0 @@
-//
-// main.m
-// CPTTestApp-iPhone
-//
-// Created by Brad Larson on 5/11/2009.
-//
-
-#import
-
-int main(int argc, char *argv[])
-{
- @autoreleasepool {
- int retVal = UIApplicationMain(argc, argv, nil, nil);
-
- return retVal;
- }
-}
diff --git a/examples/CPTTestApp-iPhone/BarChart.xib b/examples/CPTTestApp-iPhone/BarChart.xib
deleted file mode 100644
index 487a42233..000000000
--- a/examples/CPTTestApp-iPhone/BarChart.xib
+++ /dev/null
@@ -1,356 +0,0 @@
-
-
-
- 768
- 10F569
- 804
- 1038.29
- 461.00
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- 123
-
-
- YES
-
-
- YES
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
- YES
-
- YES
-
-
- YES
-
-
-
- YES
-
- IBFilesOwner
- IBCocoaTouchFramework
-
-
- IBFirstResponder
- IBCocoaTouchFramework
-
-
-
- 274
- {320, 411}
-
-
-
- 3
- MQA
-
- 2
-
-
-
-
- IBCocoaTouchFramework
-
-
-
-
- YES
-
-
- view
-
-
-
- 3
-
-
-
-
- YES
-
- 0
-
-
-
-
-
- 1
-
-
- YES
-
-
-
-
- -1
-
-
- File's Owner
-
-
- -2
-
-
-
-
-
-
- YES
-
- YES
- -1.CustomClassName
- -2.CustomClassName
- 1.CustomClassName
- 1.IBEditorWindowLastContentRect
- 1.IBPluginDependency
-
-
- YES
- CPTTestAppBarChartController
- UIResponder
- CPTGraphHostingView
- {{568, 433}, {320, 480}}
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
-
- YES
-
-
- YES
-
-
-
-
- YES
-
-
- YES
-
-
-
- 9
-
-
-
- YES
-
- CPTGraphHostingView
- UIView
-
- IBUserSource
-
-
-
-
- CPTTestAppBarChartController
- UIViewController
-
- IBProjectSource
- Classes/CPTTestAppBarChartController.h
-
-
-
-
- YES
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSError.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSFileManager.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSKeyValueCoding.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSKeyValueObserving.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSKeyedArchiver.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSObject.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSRunLoop.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSThread.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSURL.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSURLConnection.h
-
-
-
- NSObject
-
- IBFrameworkSource
- QuartzCore.framework/Headers/CAAnimation.h
-
-
-
- NSObject
-
- IBFrameworkSource
- QuartzCore.framework/Headers/CALayer.h
-
-
-
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UIAccessibility.h
-
-
-
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UINibLoading.h
-
-
-
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UIResponder.h
-
-
-
- UIResponder
- NSObject
-
-
-
- UISearchBar
- UIView
-
- IBFrameworkSource
- UIKit.framework/Headers/UISearchBar.h
-
-
-
- UISearchDisplayController
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UISearchDisplayController.h
-
-
-
- UIView
-
- IBFrameworkSource
- UIKit.framework/Headers/UITextField.h
-
-
-
- UIView
- UIResponder
-
- IBFrameworkSource
- UIKit.framework/Headers/UIView.h
-
-
-
- UIViewController
-
- IBFrameworkSource
- UIKit.framework/Headers/UINavigationController.h
-
-
-
- UIViewController
-
- IBFrameworkSource
- UIKit.framework/Headers/UIPopoverController.h
-
-
-
- UIViewController
-
- IBFrameworkSource
- UIKit.framework/Headers/UISplitViewController.h
-
-
-
- UIViewController
-
- IBFrameworkSource
- UIKit.framework/Headers/UITabBarController.h
-
-
-
- UIViewController
- UIResponder
-
- IBFrameworkSource
- UIKit.framework/Headers/UIViewController.h
-
-
-
-
- 0
- IBCocoaTouchFramework
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
-
-
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
-
-
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3
-
-
- YES
- CPTTestApp-iPhone.xcodeproj
- 3
- 123
-
-
diff --git a/examples/CPTTestApp-iPhone/Base.lproj/BarChart.xib b/examples/CPTTestApp-iPhone/Base.lproj/BarChart.xib
new file mode 100644
index 000000000..646ef95c3
--- /dev/null
+++ b/examples/CPTTestApp-iPhone/Base.lproj/BarChart.xib
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/examples/CPTTestApp-iPhone/Info.plist b/examples/CPTTestApp-iPhone/Base.lproj/Info.plist
similarity index 95%
rename from examples/CPTTestApp-iPhone/Info.plist
rename to examples/CPTTestApp-iPhone/Base.lproj/Info.plist
index 5e25306a4..3f5c82874 100644
--- a/examples/CPTTestApp-iPhone/Info.plist
+++ b/examples/CPTTestApp-iPhone/Base.lproj/Info.plist
@@ -18,6 +18,8 @@
${PRODUCT_NAME}
CFBundlePackageType
APPL
+ CFBundleShortVersionString
+ 1.0
CFBundleSignature
????
CFBundleVersion
diff --git a/examples/CPTTestApp-iPhone/Launch Screen.xib b/examples/CPTTestApp-iPhone/Base.lproj/Launch Screen.xib
similarity index 66%
rename from examples/CPTTestApp-iPhone/Launch Screen.xib
rename to examples/CPTTestApp-iPhone/Base.lproj/Launch Screen.xib
index 4529d82e3..b51d6d522 100644
--- a/examples/CPTTestApp-iPhone/Launch Screen.xib
+++ b/examples/CPTTestApp-iPhone/Base.lproj/Launch Screen.xib
@@ -1,8 +1,12 @@
-
-
+
+
+
+
+
-
-
+
+
+
@@ -11,14 +15,14 @@
-
+
-
+
diff --git a/examples/CPTTestApp-iPhone/Base.lproj/MainWindow.xib b/examples/CPTTestApp-iPhone/Base.lproj/MainWindow.xib
new file mode 100644
index 000000000..19255ec6e
--- /dev/null
+++ b/examples/CPTTestApp-iPhone/Base.lproj/MainWindow.xib
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/examples/CPTTestApp-iPhone/Base.lproj/PieChart.xib b/examples/CPTTestApp-iPhone/Base.lproj/PieChart.xib
new file mode 100644
index 000000000..840e4935a
--- /dev/null
+++ b/examples/CPTTestApp-iPhone/Base.lproj/PieChart.xib
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/examples/CPTTestApp-iPhone/Base.lproj/ScatterPlot.xib b/examples/CPTTestApp-iPhone/Base.lproj/ScatterPlot.xib
new file mode 100644
index 000000000..b1747d817
--- /dev/null
+++ b/examples/CPTTestApp-iPhone/Base.lproj/ScatterPlot.xib
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/examples/CPTTestApp-iPhone/CPTTestApp-iPhone-Bridging-Header.h b/examples/CPTTestApp-iPhone/CPTTestApp-iPhone-Bridging-Header.h
new file mode 100644
index 000000000..c99c8cd1b
--- /dev/null
+++ b/examples/CPTTestApp-iPhone/CPTTestApp-iPhone-Bridging-Header.h
@@ -0,0 +1 @@
+#import "CorePlot-CocoaTouch.h"
diff --git a/examples/CPTTestApp-iPhone/CPTTestApp-iPhone.xcodeproj/project.pbxproj b/examples/CPTTestApp-iPhone/CPTTestApp-iPhone.xcodeproj/project.pbxproj
index 85eca2c31..672347980 100644
--- a/examples/CPTTestApp-iPhone/CPTTestApp-iPhone.xcodeproj/project.pbxproj
+++ b/examples/CPTTestApp-iPhone/CPTTestApp-iPhone.xcodeproj/project.pbxproj
@@ -3,80 +3,115 @@
archiveVersion = 1;
classes = {
};
- objectVersion = 46;
+ objectVersion = 47;
objects = {
/* Begin PBXBuildFile section */
- 1D3623260D0F684500981E51 /* CPTTestApp_iPhoneAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D3623250D0F684500981E51 /* CPTTestApp_iPhoneAppDelegate.m */; };
- 1D60589B0D05DD56006BFB54 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; };
1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; };
1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; };
- 28216C970DB411BC00E5133A /* CPTTestAppBarChartController.m in Sources */ = {isa = PBXBuildFile; fileRef = 28216C960DB411BC00E5133A /* CPTTestAppBarChartController.m */; };
- 282CCBFE0DB6C98000C4EA27 /* BarChart.xib in Resources */ = {isa = PBXBuildFile; fileRef = 282CCBFD0DB6C98000C4EA27 /* BarChart.xib */; };
288765080DF74369002DB57D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765070DF74369002DB57D /* CoreGraphics.framework */; };
- 28AD73880D9D96C1002E5188 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 28AD73870D9D96C1002E5188 /* MainWindow.xib */; };
- BC74A33A10FC40C600E7E90D /* CPTTestAppPieChartController.m in Sources */ = {isa = PBXBuildFile; fileRef = BC74A33910FC40C600E7E90D /* CPTTestAppPieChartController.m */; };
- BC74A34110FC418D00E7E90D /* PieChart.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC74A34010FC418D00E7E90D /* PieChart.xib */; };
BC8166CE1100DD00006D898E /* 16-line-chart.png in Resources */ = {isa = PBXBuildFile; fileRef = BC8166CC1100DD00006D898E /* 16-line-chart.png */; };
BC8166CF1100DD00006D898E /* 17-bar-chart.png in Resources */ = {isa = PBXBuildFile; fileRef = BC8166CD1100DD00006D898E /* 17-bar-chart.png */; };
BC8166D21100DD6F006D898E /* 62-contrast.png in Resources */ = {isa = PBXBuildFile; fileRef = BC8166D11100DD6F006D898E /* 62-contrast.png */; };
BC9B81DA0FB893F70035D8DA /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BC9B81D90FB893F70035D8DA /* QuartzCore.framework */; };
- BC9B84360FB8B7110035D8DA /* ScatterPlot.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC9B84350FB8B7110035D8DA /* ScatterPlot.xib */; };
- BC9B843A0FB8B76B0035D8DA /* CPTTestAppScatterPlotController.m in Sources */ = {isa = PBXBuildFile; fileRef = BC9B84390FB8B76B0035D8DA /* CPTTestAppScatterPlotController.m */; };
- C34677B219F3345500429A85 /* Launch Screen.xib in Resources */ = {isa = PBXBuildFile; fileRef = C34677B119F3345500429A85 /* Launch Screen.xib */; };
+ C359603719CE34FC005CDFB9 /* BarChartController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C359603319CE34FB005CDFB9 /* BarChartController.swift */; };
+ C359603819CE34FC005CDFB9 /* iPhoneAppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = C359603419CE34FB005CDFB9 /* iPhoneAppDelegate.swift */; };
+ C359603919CE34FC005CDFB9 /* PieChartController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C359603519CE34FB005CDFB9 /* PieChartController.swift */; };
+ C359603A19CE34FC005CDFB9 /* ScatterPlotController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C359603619CE34FB005CDFB9 /* ScatterPlotController.swift */; };
C3B9F9D417503CDD001CCC50 /* BlueTexture.png in Resources */ = {isa = PBXBuildFile; fileRef = C3B9F9D317503CDD001CCC50 /* BlueTexture.png */; };
- C3CD283E17DE9C95008EED1E /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C3CD283D17DE9C95008EED1E /* Accelerate.framework */; };
+ C3D0A20C20E019EB00BA2921 /* PieChart.xib in Resources */ = {isa = PBXBuildFile; fileRef = C3D0A20E20E019EB00BA2921 /* PieChart.xib */; };
+ C3D0A21C20E019F000BA2921 /* BarChart.xib in Resources */ = {isa = PBXBuildFile; fileRef = C3D0A21E20E019F000BA2921 /* BarChart.xib */; };
+ C3D0A21F20E019F300BA2921 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = C3D0A22120E019F300BA2921 /* MainWindow.xib */; };
+ C3D0A22220E019F800BA2921 /* ScatterPlot.xib in Resources */ = {isa = PBXBuildFile; fileRef = C3D0A22420E019F800BA2921 /* ScatterPlot.xib */; };
+ C3D0A22520E019FF00BA2921 /* Launch Screen.xib in Resources */ = {isa = PBXBuildFile; fileRef = C3D0A22720E019FF00BA2921 /* Launch Screen.xib */; };
C3D3936419FD671100148319 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C3D3936319FD671100148319 /* Images.xcassets */; };
- F7AE270A0FFFB61E001F26F0 /* libCorePlot-CocoaTouch.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BC9B83B50FB8A9BC0035D8DA /* libCorePlot-CocoaTouch.a */; };
+ C3D414C61A7D847C00B6F5D6 /* libCorePlot-CocoaTouch.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C3D414C31A7D846500B6F5D6 /* libCorePlot-CocoaTouch.a */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
- BC9B83B40FB8A9BC0035D8DA /* PBXContainerItemProxy */ = {
+ C31D01F11D10F506008C1EF2 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
- containerPortal = BC9B83B00FB8A9BC0035D8DA /* CorePlot-CocoaTouch.xcodeproj */;
+ containerPortal = C3D414AE1A7D846500B6F5D6 /* CorePlot.xcodeproj */;
proxyType = 2;
- remoteGlobalIDString = BC9B83470FB8A0A40035D8DA;
- remoteInfo = "CorePlot-CocoaTouch";
+ remoteGlobalIDString = C37EA6921BC83F2A0091C8F7;
+ remoteInfo = "CorePlot tvOS";
};
- BC9B83B60FB8A9C70035D8DA /* PBXContainerItemProxy */ = {
+ C31D01F31D10F506008C1EF2 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
- containerPortal = BC9B83B00FB8A9BC0035D8DA /* CorePlot-CocoaTouch.xcodeproj */;
- proxyType = 1;
- remoteGlobalIDString = BC9B83460FB8A0A40035D8DA;
+ containerPortal = C3D414AE1A7D846500B6F5D6 /* CorePlot.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = C37EA6B71BC83F2D0091C8F7;
+ remoteInfo = "UnitTests tvOS";
+ };
+ C3D414BA1A7D846500B6F5D6 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = C3D414AE1A7D846500B6F5D6 /* CorePlot.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = 8DC2EF5B0486A6940098B216;
+ remoteInfo = CorePlot;
+ };
+ C3D414BC1A7D846500B6F5D6 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = C3D414AE1A7D846500B6F5D6 /* CorePlot.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = 0730F600109492D800E95162;
+ remoteInfo = UnitTests;
+ };
+ C3D414BE1A7D846500B6F5D6 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = C3D414AE1A7D846500B6F5D6 /* CorePlot.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = C38A09781A46185200D45436;
+ remoteInfo = CorePlot_iOS;
+ };
+ C3D414C01A7D846500B6F5D6 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = C3D414AE1A7D846500B6F5D6 /* CorePlot.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = C38A09821A46185300D45436;
+ remoteInfo = CorePlot_iOSTests;
+ };
+ C3D414C21A7D846500B6F5D6 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = C3D414AE1A7D846500B6F5D6 /* CorePlot.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = C38A09BA1A4619A900D45436;
remoteInfo = "CorePlot-CocoaTouch";
};
+ C3D414C41A7D846500B6F5D6 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = C3D414AE1A7D846500B6F5D6 /* CorePlot.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = C38A09C41A4619A900D45436;
+ remoteInfo = "CorePlot-CocoaTouchTests";
+ };
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
- 1D3623240D0F684500981E51 /* CPTTestApp_iPhoneAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CPTTestApp_iPhoneAppDelegate.h; sourceTree = ""; };
- 1D3623250D0F684500981E51 /* CPTTestApp_iPhoneAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CPTTestApp_iPhoneAppDelegate.m; sourceTree = ""; };
1D6058910D05DD3D006BFB54 /* CPTTestApp-iPhone.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "CPTTestApp-iPhone.app"; sourceTree = BUILT_PRODUCTS_DIR; };
1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
- 28216C950DB411BC00E5133A /* CPTTestAppBarChartController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CPTTestAppBarChartController.h; sourceTree = ""; };
- 28216C960DB411BC00E5133A /* CPTTestAppBarChartController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CPTTestAppBarChartController.m; sourceTree = ""; };
- 282CCBFD0DB6C98000C4EA27 /* BarChart.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = BarChart.xib; sourceTree = ""; };
288765070DF74369002DB57D /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
- 28A0AB4B0D9B1048005BE974 /* CPTTestApp_iPhone_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CPTTestApp_iPhone_Prefix.pch; sourceTree = ""; };
- 28AD73870D9D96C1002E5188 /* MainWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MainWindow.xib; sourceTree = ""; };
- 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; };
- 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
- BC74A33810FC40C600E7E90D /* CPTTestAppPieChartController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CPTTestAppPieChartController.h; sourceTree = ""; };
- BC74A33910FC40C600E7E90D /* CPTTestAppPieChartController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CPTTestAppPieChartController.m; sourceTree = ""; };
- BC74A34010FC418D00E7E90D /* PieChart.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = PieChart.xib; sourceTree = ""; };
BC8166CC1100DD00006D898E /* 16-line-chart.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "16-line-chart.png"; path = "GlyphishIcons/16-line-chart.png"; sourceTree = ""; };
BC8166CD1100DD00006D898E /* 17-bar-chart.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "17-bar-chart.png"; path = "GlyphishIcons/17-bar-chart.png"; sourceTree = ""; };
BC8166D11100DD6F006D898E /* 62-contrast.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "62-contrast.png"; path = "GlyphishIcons/62-contrast.png"; sourceTree = ""; };
BC9B81D90FB893F70035D8DA /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
- BC9B83B00FB8A9BC0035D8DA /* CorePlot-CocoaTouch.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "CorePlot-CocoaTouch.xcodeproj"; path = "../../framework/CorePlot-CocoaTouch.xcodeproj"; sourceTree = SOURCE_ROOT; };
- BC9B84350FB8B7110035D8DA /* ScatterPlot.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ScatterPlot.xib; sourceTree = ""; };
- BC9B84380FB8B76B0035D8DA /* CPTTestAppScatterPlotController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CPTTestAppScatterPlotController.h; sourceTree = ""; };
- BC9B84390FB8B76B0035D8DA /* CPTTestAppScatterPlotController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CPTTestAppScatterPlotController.m; sourceTree = ""; };
- C34677B119F3345500429A85 /* Launch Screen.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = "Launch Screen.xib"; sourceTree = ""; };
- C36E7CC219DE1C1700EDEACB /* CorePlotWarnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = CorePlotWarnings.xcconfig; path = ../../framework/CorePlotWarnings.xcconfig; sourceTree = ""; };
+ C359603319CE34FB005CDFB9 /* BarChartController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BarChartController.swift; sourceTree = ""; };
+ C359603419CE34FB005CDFB9 /* iPhoneAppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = iPhoneAppDelegate.swift; sourceTree = ""; };
+ C359603519CE34FB005CDFB9 /* PieChartController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PieChartController.swift; sourceTree = ""; };
+ C359603619CE34FB005CDFB9 /* ScatterPlotController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ScatterPlotController.swift; sourceTree = ""; };
+ C359603B19CE352A005CDFB9 /* CPTTestApp-iPhone-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = "CPTTestApp-iPhone-Bridging-Header.h"; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };
+ C37A40F020E0322D00C4FF48 /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Base; path = Base.lproj/Info.plist; sourceTree = ""; };
C3B9F9D317503CDD001CCC50 /* BlueTexture.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = BlueTexture.png; sourceTree = ""; };
+ C3C3CBDE19EA125D00A0296A /* CorePlotWarnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = CorePlotWarnings.xcconfig; path = ../../framework/xcconfig/CorePlotWarnings.xcconfig; sourceTree = ""; };
C3CD283D17DE9C95008EED1E /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; };
+ C3D0A22820E01A0600BA2921 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/PieChart.xib; sourceTree = ""; };
+ C3D0A22920E01A0600BA2921 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/BarChart.xib; sourceTree = ""; };
+ C3D0A22A20E01A0600BA2921 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainWindow.xib; sourceTree = ""; };
+ C3D0A22B20E01A0600BA2921 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/ScatterPlot.xib; sourceTree = ""; };
+ C3D0A22C20E01A0600BA2921 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = "Base.lproj/Launch Screen.xib"; sourceTree = ""; };
C3D3936319FD671100148319 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = "CPTTestApp-iPhone/Images.xcassets"; sourceTree = ""; };
+ C3D414AE1A7D846500B6F5D6 /* CorePlot.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = CorePlot.xcodeproj; path = ../../framework/CorePlot.xcodeproj; sourceTree = ""; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@@ -88,8 +123,7 @@
1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */,
288765080DF74369002DB57D /* CoreGraphics.framework in Frameworks */,
BC9B81DA0FB893F70035D8DA /* QuartzCore.framework in Frameworks */,
- F7AE270A0FFFB61E001F26F0 /* libCorePlot-CocoaTouch.a in Frameworks */,
- C3CD283E17DE9C95008EED1E /* Accelerate.framework in Frameworks */,
+ C3D414C61A7D847C00B6F5D6 /* libCorePlot-CocoaTouch.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -99,14 +133,10 @@
080E96DDFE201D6D7F000001 /* Classes */ = {
isa = PBXGroup;
children = (
- 28216C950DB411BC00E5133A /* CPTTestAppBarChartController.h */,
- 28216C960DB411BC00E5133A /* CPTTestAppBarChartController.m */,
- 1D3623240D0F684500981E51 /* CPTTestApp_iPhoneAppDelegate.h */,
- 1D3623250D0F684500981E51 /* CPTTestApp_iPhoneAppDelegate.m */,
- BC74A33810FC40C600E7E90D /* CPTTestAppPieChartController.h */,
- BC74A33910FC40C600E7E90D /* CPTTestAppPieChartController.m */,
- BC9B84380FB8B76B0035D8DA /* CPTTestAppScatterPlotController.h */,
- BC9B84390FB8B76B0035D8DA /* CPTTestAppScatterPlotController.m */,
+ C359603419CE34FB005CDFB9 /* iPhoneAppDelegate.swift */,
+ C359603319CE34FB005CDFB9 /* BarChartController.swift */,
+ C359603519CE34FB005CDFB9 /* PieChartController.swift */,
+ C359603619CE34FB005CDFB9 /* ScatterPlotController.swift */,
);
path = Classes;
sourceTree = "";
@@ -122,7 +152,7 @@
29B97314FDCFA39411CA2CEA /* CPTTestApp-iPhone */ = {
isa = PBXGroup;
children = (
- BC9B83B00FB8A9BC0035D8DA /* CorePlot-CocoaTouch.xcodeproj */,
+ C3D414AE1A7D846500B6F5D6 /* CorePlot.xcodeproj */,
080E96DDFE201D6D7F000001 /* Classes */,
29B97315FDCFA39411CA2CEA /* Other Sources */,
29B97317FDCFA39411CA2CEA /* Resources */,
@@ -138,9 +168,8 @@
29B97315FDCFA39411CA2CEA /* Other Sources */ = {
isa = PBXGroup;
children = (
- 28A0AB4B0D9B1048005BE974 /* CPTTestApp_iPhone_Prefix.pch */,
- 29B97316FDCFA39411CA2CEA /* main.m */,
- C36E7CC219DE1C1700EDEACB /* CorePlotWarnings.xcconfig */,
+ C359603B19CE352A005CDFB9 /* CPTTestApp-iPhone-Bridging-Header.h */,
+ C3C3CBDE19EA125D00A0296A /* CorePlotWarnings.xcconfig */,
);
name = "Other Sources";
sourceTree = "";
@@ -153,12 +182,12 @@
BC8166CC1100DD00006D898E /* 16-line-chart.png */,
BC8166CD1100DD00006D898E /* 17-bar-chart.png */,
C3B9F9D317503CDD001CCC50 /* BlueTexture.png */,
- BC74A34010FC418D00E7E90D /* PieChart.xib */,
- 282CCBFD0DB6C98000C4EA27 /* BarChart.xib */,
- 28AD73870D9D96C1002E5188 /* MainWindow.xib */,
- 8D1107310486CEB800E47090 /* Info.plist */,
- BC9B84350FB8B7110035D8DA /* ScatterPlot.xib */,
- C34677B119F3345500429A85 /* Launch Screen.xib */,
+ C3D0A22720E019FF00BA2921 /* Launch Screen.xib */,
+ C3D0A22120E019F300BA2921 /* MainWindow.xib */,
+ C3D0A22420E019F800BA2921 /* ScatterPlot.xib */,
+ C3D0A21E20E019F000BA2921 /* BarChart.xib */,
+ C3D0A20E20E019EB00BA2921 /* PieChart.xib */,
+ C37A40F120E0322D00C4FF48 /* Info.plist */,
);
name = Resources;
sourceTree = "";
@@ -175,10 +204,17 @@
name = Frameworks;
sourceTree = "";
};
- BC9B83B10FB8A9BC0035D8DA /* Products */ = {
+ C3D414AF1A7D846500B6F5D6 /* Products */ = {
isa = PBXGroup;
children = (
- BC9B83B50FB8A9BC0035D8DA /* libCorePlot-CocoaTouch.a */,
+ C3D414BB1A7D846500B6F5D6 /* CorePlot.framework */,
+ C3D414BD1A7D846500B6F5D6 /* UnitTests.xctest */,
+ C3D414BF1A7D846500B6F5D6 /* CorePlot.framework */,
+ C3D414C11A7D846500B6F5D6 /* UnitTests iOS.xctest */,
+ C3D414C31A7D846500B6F5D6 /* libCorePlot-CocoaTouch.a */,
+ C3D414C51A7D846500B6F5D6 /* CorePlot-CocoaTouchTests.xctest */,
+ C31D01F21D10F506008C1EF2 /* CorePlot.framework */,
+ C31D01F41D10F506008C1EF2 /* UnitTests tvOS.xctest */,
);
name = Products;
sourceTree = "";
@@ -197,7 +233,6 @@
buildRules = (
);
dependencies = (
- BC9B83B70FB8A9C70035D8DA /* PBXTargetDependency */,
);
name = "CPTTestApp-iPhone";
productName = "CPTTestApp-iPhone";
@@ -210,24 +245,32 @@
29B97313FDCFA39411CA2CEA /* Project object */ = {
isa = PBXProject;
attributes = {
- LastUpgradeCheck = 0500;
+ LastSwiftUpdateCheck = 0700;
+ LastUpgradeCheck = 0930;
+ TargetAttributes = {
+ 1D6058900D05DD3D006BFB54 = {
+ DevelopmentTeam = 28ZA45DE7D;
+ LastSwiftMigration = 1020;
+ };
+ };
};
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "CPTTestApp-iPhone" */;
- compatibilityVersion = "Xcode 3.2";
- developmentRegion = English;
+ compatibilityVersion = "Xcode 6.3";
+ developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (
- English,
- Japanese,
- French,
- German,
+ Base,
+ fr,
+ de,
+ ja,
+ en,
);
mainGroup = 29B97314FDCFA39411CA2CEA /* CPTTestApp-iPhone */;
projectDirPath = "";
projectReferences = (
{
- ProductGroup = BC9B83B10FB8A9BC0035D8DA /* Products */;
- ProjectRef = BC9B83B00FB8A9BC0035D8DA /* CorePlot-CocoaTouch.xcodeproj */;
+ ProductGroup = C3D414AF1A7D846500B6F5D6 /* Products */;
+ ProjectRef = C3D414AE1A7D846500B6F5D6 /* CorePlot.xcodeproj */;
},
);
projectRoot = "";
@@ -238,11 +281,60 @@
/* End PBXProject section */
/* Begin PBXReferenceProxy section */
- BC9B83B50FB8A9BC0035D8DA /* libCorePlot-CocoaTouch.a */ = {
+ C31D01F21D10F506008C1EF2 /* CorePlot.framework */ = {
+ isa = PBXReferenceProxy;
+ fileType = wrapper.framework;
+ path = CorePlot.framework;
+ remoteRef = C31D01F11D10F506008C1EF2 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ C31D01F41D10F506008C1EF2 /* UnitTests tvOS.xctest */ = {
+ isa = PBXReferenceProxy;
+ fileType = wrapper.cfbundle;
+ path = "UnitTests tvOS.xctest";
+ remoteRef = C31D01F31D10F506008C1EF2 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ C3D414BB1A7D846500B6F5D6 /* CorePlot.framework */ = {
+ isa = PBXReferenceProxy;
+ fileType = wrapper.framework;
+ path = CorePlot.framework;
+ remoteRef = C3D414BA1A7D846500B6F5D6 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ C3D414BD1A7D846500B6F5D6 /* UnitTests.xctest */ = {
+ isa = PBXReferenceProxy;
+ fileType = wrapper.cfbundle;
+ path = UnitTests.xctest;
+ remoteRef = C3D414BC1A7D846500B6F5D6 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ C3D414BF1A7D846500B6F5D6 /* CorePlot.framework */ = {
+ isa = PBXReferenceProxy;
+ fileType = wrapper.framework;
+ path = CorePlot.framework;
+ remoteRef = C3D414BE1A7D846500B6F5D6 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ C3D414C11A7D846500B6F5D6 /* UnitTests iOS.xctest */ = {
+ isa = PBXReferenceProxy;
+ fileType = wrapper.cfbundle;
+ path = "UnitTests iOS.xctest";
+ remoteRef = C3D414C01A7D846500B6F5D6 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ C3D414C31A7D846500B6F5D6 /* libCorePlot-CocoaTouch.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = "libCorePlot-CocoaTouch.a";
- remoteRef = BC9B83B40FB8A9BC0035D8DA /* PBXContainerItemProxy */;
+ remoteRef = C3D414C21A7D846500B6F5D6 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ C3D414C51A7D846500B6F5D6 /* CorePlot-CocoaTouchTests.xctest */ = {
+ isa = PBXReferenceProxy;
+ fileType = wrapper.cfbundle;
+ path = "CorePlot-CocoaTouchTests.xctest";
+ remoteRef = C3D414C41A7D846500B6F5D6 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
/* End PBXReferenceProxy section */
@@ -252,12 +344,12 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
- 28AD73880D9D96C1002E5188 /* MainWindow.xib in Resources */,
- 282CCBFE0DB6C98000C4EA27 /* BarChart.xib in Resources */,
- BC9B84360FB8B7110035D8DA /* ScatterPlot.xib in Resources */,
+ C3D0A21F20E019F300BA2921 /* MainWindow.xib in Resources */,
+ C3D0A21C20E019F000BA2921 /* BarChart.xib in Resources */,
+ C3D0A22220E019F800BA2921 /* ScatterPlot.xib in Resources */,
C3D3936419FD671100148319 /* Images.xcassets in Resources */,
- BC74A34110FC418D00E7E90D /* PieChart.xib in Resources */,
- C34677B219F3345500429A85 /* Launch Screen.xib in Resources */,
+ C3D0A20C20E019EB00BA2921 /* PieChart.xib in Resources */,
+ C3D0A22520E019FF00BA2921 /* Launch Screen.xib in Resources */,
BC8166CE1100DD00006D898E /* 16-line-chart.png in Resources */,
BC8166CF1100DD00006D898E /* 17-bar-chart.png in Resources */,
BC8166D21100DD6F006D898E /* 62-contrast.png in Resources */,
@@ -272,40 +364,82 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
- 1D60589B0D05DD56006BFB54 /* main.m in Sources */,
- 1D3623260D0F684500981E51 /* CPTTestApp_iPhoneAppDelegate.m in Sources */,
- 28216C970DB411BC00E5133A /* CPTTestAppBarChartController.m in Sources */,
- BC9B843A0FB8B76B0035D8DA /* CPTTestAppScatterPlotController.m in Sources */,
- BC74A33A10FC40C600E7E90D /* CPTTestAppPieChartController.m in Sources */,
+ C359603719CE34FC005CDFB9 /* BarChartController.swift in Sources */,
+ C359603819CE34FC005CDFB9 /* iPhoneAppDelegate.swift in Sources */,
+ C359603919CE34FC005CDFB9 /* PieChartController.swift in Sources */,
+ C359603A19CE34FC005CDFB9 /* ScatterPlotController.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
-/* Begin PBXTargetDependency section */
- BC9B83B70FB8A9C70035D8DA /* PBXTargetDependency */ = {
- isa = PBXTargetDependency;
- name = "CorePlot-CocoaTouch";
- targetProxy = BC9B83B60FB8A9C70035D8DA /* PBXContainerItemProxy */;
+/* Begin PBXVariantGroup section */
+ C37A40F120E0322D00C4FF48 /* Info.plist */ = {
+ isa = PBXVariantGroup;
+ children = (
+ C37A40F020E0322D00C4FF48 /* Base */,
+ );
+ name = Info.plist;
+ sourceTree = "";
+ };
+ C3D0A20E20E019EB00BA2921 /* PieChart.xib */ = {
+ isa = PBXVariantGroup;
+ children = (
+ C3D0A22820E01A0600BA2921 /* Base */,
+ );
+ name = PieChart.xib;
+ sourceTree = "";
};
-/* End PBXTargetDependency section */
+ C3D0A21E20E019F000BA2921 /* BarChart.xib */ = {
+ isa = PBXVariantGroup;
+ children = (
+ C3D0A22920E01A0600BA2921 /* Base */,
+ );
+ name = BarChart.xib;
+ sourceTree = "";
+ };
+ C3D0A22120E019F300BA2921 /* MainWindow.xib */ = {
+ isa = PBXVariantGroup;
+ children = (
+ C3D0A22A20E01A0600BA2921 /* Base */,
+ );
+ name = MainWindow.xib;
+ sourceTree = "";
+ };
+ C3D0A22420E019F800BA2921 /* ScatterPlot.xib */ = {
+ isa = PBXVariantGroup;
+ children = (
+ C3D0A22B20E01A0600BA2921 /* Base */,
+ );
+ name = ScatterPlot.xib;
+ sourceTree = "";
+ };
+ C3D0A22720E019FF00BA2921 /* Launch Screen.xib */ = {
+ isa = PBXVariantGroup;
+ children = (
+ C3D0A22C20E01A0600BA2921 /* Base */,
+ );
+ name = "Launch Screen.xib";
+ sourceTree = "";
+ };
+/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
1D6058940D05DD3E006BFB54 /* Debug */ = {
isa = XCBuildConfiguration;
+ baseConfigurationReference = C3C3CBDE19EA125D00A0296A /* CorePlotWarnings.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
CLANG_ENABLE_OBJC_ARC = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
+ DEVELOPMENT_TEAM = 28ZA45DE7D;
GCC_DYNAMIC_NO_PIC = NO;
- GCC_OPTIMIZATION_LEVEL = 0;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = CPTTestApp_iPhone_Prefix.pch;
HEADER_SEARCH_PATHS = "";
- INFOPLIST_FILE = Info.plist;
+ INFOPLIST_FILE = "$(SRCROOT)/Base.lproj/Info.plist";
LIBRARY_SEARCH_PATHS = "";
OTHER_LDFLAGS = (
"-all_load",
@@ -314,23 +448,25 @@
PRODUCT_BUNDLE_IDENTIFIER = org.CorePlot.CPTTestAppiPhone;
PRODUCT_NAME = "CPTTestApp-iPhone";
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
- USER_HEADER_SEARCH_PATHS = "\"${PROJECT_DIR}/../../framework\"/**";
+ SWIFT_OBJC_BRIDGING_HEADER = "CPTTestApp-iPhone-Bridging-Header.h";
+ SWIFT_VERSION = 5.0;
};
name = Debug;
};
1D6058950D05DD3E006BFB54 /* Release */ = {
isa = XCBuildConfiguration;
+ baseConfigurationReference = C3C3CBDE19EA125D00A0296A /* CorePlotWarnings.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
CLANG_ENABLE_OBJC_ARC = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
COPY_PHASE_STRIP = YES;
+ DEVELOPMENT_TEAM = 28ZA45DE7D;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = CPTTestApp_iPhone_Prefix.pch;
HEADER_SEARCH_PATHS = "";
- INFOPLIST_FILE = Info.plist;
+ INFOPLIST_FILE = "$(SRCROOT)/Base.lproj/Info.plist";
LIBRARY_SEARCH_PATHS = "";
OTHER_LDFLAGS = (
"-all_load",
@@ -339,23 +475,28 @@
PRODUCT_BUNDLE_IDENTIFIER = org.CorePlot.CPTTestAppiPhone;
PRODUCT_NAME = "CPTTestApp-iPhone";
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
- USER_HEADER_SEARCH_PATHS = "\"${PROJECT_DIR}/../../framework\"/**";
+ SWIFT_OBJC_BRIDGING_HEADER = "CPTTestApp-iPhone-Bridging-Header.h";
+ SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
+ SWIFT_VERSION = 5.0;
};
name = Release;
};
C01FCF4F08A954540054247B /* Debug */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = C36E7CC219DE1C1700EDEACB /* CorePlotWarnings.xcconfig */;
+ baseConfigurationReference = C3C3CBDE19EA125D00A0296A /* CorePlotWarnings.xcconfig */;
buildSettings = {
+ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = c99;
- GCC_TREAT_WARNINGS_AS_ERRORS = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_OPTIMIZATION_LEVEL = 0;
HEADER_SEARCH_PATHS = "";
- IPHONEOS_DEPLOYMENT_TARGET = 6.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @loader_path/Frameworks";
ONLY_ACTIVE_ARCH = YES;
OTHER_LDFLAGS = "-ObjC";
PROVISIONING_PROFILE = "";
@@ -363,23 +504,25 @@
SDKROOT = iphoneos;
SYMROOT = "$(SRCROOT)/../../build";
TARGETED_DEVICE_FAMILY = 1;
- USER_HEADER_SEARCH_PATHS = "\"${PROJECT_DIR}/../../framework\"/**";
+ USER_HEADER_SEARCH_PATHS = "\"${PROJECT_DIR}/../../framework\" \"${PROJECT_DIR}/../../framework/Source\" \"${PROJECT_DIR}/../../framework/iPhoneOnly\"";
};
name = Debug;
};
C01FCF5008A954540054247B /* Release */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = C36E7CC219DE1C1700EDEACB /* CorePlotWarnings.xcconfig */;
+ baseConfigurationReference = C3C3CBDE19EA125D00A0296A /* CorePlotWarnings.xcconfig */;
buildSettings = {
+ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CODE_SIGN_IDENTITY = "iPhone Distribution";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
GCC_C_LANGUAGE_STANDARD = c99;
- GCC_TREAT_WARNINGS_AS_ERRORS = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_OPTIMIZATION_LEVEL = s;
HEADER_SEARCH_PATHS = "";
- IPHONEOS_DEPLOYMENT_TARGET = 6.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @loader_path/Frameworks";
ONLY_ACTIVE_ARCH = YES;
OTHER_LDFLAGS = "-ObjC";
PROVISIONING_PROFILE = "";
@@ -387,7 +530,7 @@
SDKROOT = iphoneos;
SYMROOT = "$(SRCROOT)/../../build";
TARGETED_DEVICE_FAMILY = 1;
- USER_HEADER_SEARCH_PATHS = "\"${PROJECT_DIR}/../../framework\"/**";
+ USER_HEADER_SEARCH_PATHS = "\"${PROJECT_DIR}/../../framework\" \"${PROJECT_DIR}/../../framework/Source\" \"${PROJECT_DIR}/../../framework/iPhoneOnly\"";
};
name = Release;
};
diff --git a/examples/CPTTestApp-iPhone/CPTTestApp-iPhone.xcodeproj/xcshareddata/xcschemes/CPTTestApp-iPhone.xcscheme b/examples/CPTTestApp-iPhone/CPTTestApp-iPhone.xcodeproj/xcshareddata/xcschemes/CPTTestApp-iPhone.xcscheme
new file mode 100644
index 000000000..0977a0925
--- /dev/null
+++ b/examples/CPTTestApp-iPhone/CPTTestApp-iPhone.xcodeproj/xcshareddata/xcschemes/CPTTestApp-iPhone.xcscheme
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/examples/CPTTestApp-iPhone/CPTTestApp-iPhone/Images.xcassets/AppIcon.appiconset/Contents.json b/examples/CPTTestApp-iPhone/CPTTestApp-iPhone/Images.xcassets/AppIcon.appiconset/Contents.json
index 340f2376e..44518e8c3 100644
--- a/examples/CPTTestApp-iPhone/CPTTestApp-iPhone/Images.xcassets/AppIcon.appiconset/Contents.json
+++ b/examples/CPTTestApp-iPhone/CPTTestApp-iPhone/Images.xcassets/AppIcon.appiconset/Contents.json
@@ -1,5 +1,15 @@
{
"images" : [
+ {
+ "idiom" : "iphone",
+ "size" : "20x20",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "iphone",
+ "size" : "20x20",
+ "scale" : "3x"
+ },
{
"size" : "29x29",
"idiom" : "iphone",
@@ -12,12 +22,22 @@
"filename" : "Icon-Small@2x.png",
"scale" : "2x"
},
+ {
+ "idiom" : "iphone",
+ "size" : "29x29",
+ "scale" : "3x"
+ },
{
"size" : "40x40",
"idiom" : "iphone",
"filename" : "Icon-Spotlight-40@2x.png",
"scale" : "2x"
},
+ {
+ "idiom" : "iphone",
+ "size" : "40x40",
+ "scale" : "3x"
+ },
{
"size" : "57x57",
"idiom" : "iphone",
@@ -41,6 +61,12 @@
"idiom" : "iphone",
"filename" : "Icon-60@3x.png",
"scale" : "3x"
+ },
+ {
+ "size" : "1024x1024",
+ "idiom" : "ios-marketing",
+ "filename" : "iTunesArtwork.png",
+ "scale" : "1x"
}
],
"info" : {
diff --git a/examples/CPTTestApp-iPhone/CPTTestApp-iPhone/Images.xcassets/AppIcon.appiconset/iTunesArtwork.png b/examples/CPTTestApp-iPhone/CPTTestApp-iPhone/Images.xcassets/AppIcon.appiconset/iTunesArtwork.png
new file mode 100644
index 000000000..969aff8dd
Binary files /dev/null and b/examples/CPTTestApp-iPhone/CPTTestApp-iPhone/Images.xcassets/AppIcon.appiconset/iTunesArtwork.png differ
diff --git a/examples/CPTTestApp-iPhone/CPTTestApp-iPhone/Images.xcassets/Contents.json b/examples/CPTTestApp-iPhone/CPTTestApp-iPhone/Images.xcassets/Contents.json
new file mode 100644
index 000000000..da4a164c9
--- /dev/null
+++ b/examples/CPTTestApp-iPhone/CPTTestApp-iPhone/Images.xcassets/Contents.json
@@ -0,0 +1,6 @@
+{
+ "info" : {
+ "version" : 1,
+ "author" : "xcode"
+ }
+}
\ No newline at end of file
diff --git a/examples/CPTTestApp-iPhone/CPTTestApp-iPhone/Images.xcassets/LaunchImage.launchimage/Contents.json b/examples/CPTTestApp-iPhone/CPTTestApp-iPhone/Images.xcassets/LaunchImage.launchimage/Contents.json
deleted file mode 100644
index f0fce5477..000000000
--- a/examples/CPTTestApp-iPhone/CPTTestApp-iPhone/Images.xcassets/LaunchImage.launchimage/Contents.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "images" : [
- {
- "orientation" : "portrait",
- "idiom" : "iphone",
- "filename" : "Default-568h@2x.png",
- "minimum-system-version" : "7.0",
- "subtype" : "retina4",
- "scale" : "2x"
- },
- {
- "idiom" : "iphone",
- "scale" : "1x",
- "orientation" : "portrait"
- },
- {
- "idiom" : "iphone",
- "scale" : "2x",
- "orientation" : "portrait"
- },
- {
- "orientation" : "portrait",
- "idiom" : "iphone",
- "filename" : "Default-568h@2x.png",
- "subtype" : "retina4",
- "scale" : "2x"
- },
- {
- "orientation" : "portrait",
- "idiom" : "iphone",
- "minimum-system-version" : "7.0",
- "scale" : "2x"
- }
- ],
- "info" : {
- "version" : 1,
- "author" : "xcode"
- }
-}
\ No newline at end of file
diff --git a/examples/CPTTestApp-iPhone/CPTTestApp-iPhone/Images.xcassets/LaunchImage.launchimage/Default-568h@2x.png b/examples/CPTTestApp-iPhone/CPTTestApp-iPhone/Images.xcassets/LaunchImage.launchimage/Default-568h@2x.png
deleted file mode 100644
index 0891b7aab..000000000
Binary files a/examples/CPTTestApp-iPhone/CPTTestApp-iPhone/Images.xcassets/LaunchImage.launchimage/Default-568h@2x.png and /dev/null differ
diff --git a/examples/CPTTestApp-iPhone/CPTTestApp_iPhone_Prefix.pch b/examples/CPTTestApp-iPhone/CPTTestApp_iPhone_Prefix.pch
deleted file mode 100644
index 5cdc39f4d..000000000
--- a/examples/CPTTestApp-iPhone/CPTTestApp_iPhone_Prefix.pch
+++ /dev/null
@@ -1,8 +0,0 @@
-//
-// Prefix header for all source files of the 'CPTTestApp-iPhone' target in the 'CPTTestApp-iPhone' project
-//
-
-#ifdef __OBJC__
- #import
- #import
-#endif
diff --git a/examples/CPTTestApp-iPhone/Classes/BarChartController.swift b/examples/CPTTestApp-iPhone/Classes/BarChartController.swift
new file mode 100644
index 000000000..5e5618f03
--- /dev/null
+++ b/examples/CPTTestApp-iPhone/Classes/BarChartController.swift
@@ -0,0 +1,153 @@
+import UIKit
+
+class BarChartController : UIViewController, CPTBarPlotDataSource {
+ private var barGraph : CPTXYGraph? = nil
+
+ // MARK: - Initialization
+
+ override func viewDidAppear(_ animated : Bool)
+ {
+ super.viewDidAppear(animated)
+
+ // Create graph from theme
+ let newGraph = CPTXYGraph(frame: .zero)
+ newGraph.apply(CPTTheme(named: .darkGradientTheme))
+
+ let hostingView = self.view as! CPTGraphHostingView
+ hostingView.hostedGraph = newGraph
+
+ if let frameLayer = newGraph.plotAreaFrame {
+ // Border
+ frameLayer.borderLineStyle = nil
+ frameLayer.cornerRadius = 0.0
+ frameLayer.masksToBorder = false
+
+ // Paddings
+ newGraph.paddingLeft = 0.0
+ newGraph.paddingRight = 0.0
+ newGraph.paddingTop = 0.0
+ newGraph.paddingBottom = 0.0
+
+ frameLayer.paddingLeft = 70.0
+ frameLayer.paddingTop = 20.0
+ frameLayer.paddingRight = 20.0
+ frameLayer.paddingBottom = 80.0
+ }
+
+ // Graph title
+ let paragraphStyle = NSMutableParagraphStyle()
+ paragraphStyle.alignment = .center
+
+ let lineOne = "Graph Title"
+ let lineTwo = "Line 2"
+
+ let line1Font = UIFont(name: "Helvetica-Bold", size:16.0)
+ let line2Font = UIFont(name: "Helvetica", size:12.0)
+
+ let graphTitle = NSMutableAttributedString(string: lineOne + "\n" + lineTwo)
+
+ let titleRange1 = NSRange(location: 0, length: lineOne.utf16.count)
+ let titleRange2 = NSRange(location: lineOne.utf16.count + 1, length: lineTwo.utf16.count)
+
+ graphTitle.addAttribute(.foregroundColor, value:UIColor.white, range:titleRange1)
+ graphTitle.addAttribute(.foregroundColor, value:UIColor.gray, range:titleRange2)
+ graphTitle.addAttribute(.paragraphStyle, value:paragraphStyle, range:NSRange(location: 0, length: graphTitle.length))
+ graphTitle.addAttribute(.font, value:line1Font!, range:titleRange1)
+ graphTitle.addAttribute(.font, value:line2Font!, range:titleRange2)
+
+ newGraph.attributedTitle = graphTitle
+
+ newGraph.titleDisplacement = CGPoint(x: 0.0, y:-20.0)
+ newGraph.titlePlotAreaFrameAnchor = .top
+
+ // Plot space
+ let plotSpace = newGraph.defaultPlotSpace as! CPTXYPlotSpace
+ plotSpace.yRange = CPTPlotRange(location:0.0, length:300.0)
+ plotSpace.xRange = CPTPlotRange(location:0.0, length:16.0)
+
+ let axisSet = newGraph.axisSet as! CPTXYAxisSet
+
+ if let x = axisSet.xAxis {
+ x.axisLineStyle = nil
+ x.majorTickLineStyle = nil
+ x.minorTickLineStyle = nil
+ x.majorIntervalLength = 5.0
+ x.orthogonalPosition = 0.0
+ x.title = "X Axis"
+ x.titleLocation = 7.5
+ x.titleOffset = 55.0
+
+ // Custom labels
+ x.labelRotation = CGFloat(.pi / 4.0)
+ x.labelingPolicy = .none
+
+ let customTickLocations = [1, 5, 10, 15]
+ let xAxisLabels = ["Label A", "Label B", "Label C", "Label D"]
+
+ var labelLocation = 0
+ var customLabels = Set()
+ for tickLocation in customTickLocations {
+ let newLabel = CPTAxisLabel(text:xAxisLabels[labelLocation], textStyle:x.labelTextStyle)
+ labelLocation += 1
+ newLabel.tickLocation = tickLocation as NSNumber
+ newLabel.offset = x.labelOffset + x.majorTickLength
+ newLabel.rotation = CGFloat(.pi / 4.0)
+ customLabels.insert(newLabel)
+ }
+
+ x.axisLabels = customLabels
+ }
+
+ if let y = axisSet.yAxis {
+ y.axisLineStyle = nil
+ y.majorTickLineStyle = nil
+ y.minorTickLineStyle = nil
+ y.majorIntervalLength = 50.0
+ y.orthogonalPosition = 0.0
+ y.title = "Y Axis"
+ y.titleOffset = 45.0
+ y.titleLocation = 150.0
+ }
+
+ // First bar plot
+ let barPlot1 = CPTBarPlot.tubularBarPlot(with: .darkGray(), horizontalBars:false)
+ barPlot1.baseValue = 0.0
+ barPlot1.dataSource = self
+ barPlot1.barOffset = -0.2
+ barPlot1.identifier = "Bar Plot 1" as NSString
+ newGraph.add(barPlot1, to:plotSpace)
+
+ // Second bar plot
+ let barPlot2 = CPTBarPlot.tubularBarPlot(with: .blue(), horizontalBars:false)
+ barPlot2.dataSource = self
+ barPlot2.baseValue = 0.0
+ barPlot2.barOffset = 0.25
+ barPlot2.barCornerRadius = 2.0
+ barPlot2.identifier = "Bar Plot 2" as NSString
+ newGraph.add(barPlot2, to:plotSpace)
+
+ self.barGraph = newGraph
+ }
+
+ // MARK: - Plot Data Source Methods
+
+ func numberOfRecords(for plot: CPTPlot) -> UInt
+ {
+ return 16
+ }
+
+ func number(for plot: CPTPlot, field: UInt, record: UInt) -> Any?
+ {
+ switch CPTBarPlotField(rawValue: Int(field))! {
+ case .barLocation:
+ return record as NSNumber
+
+ case .barTip:
+ let plotID = plot.identifier as! String
+ return (plotID == "Bar Plot 2" ? record : ((record + 1) * (record + 1)) ) as NSNumber
+
+ default:
+ return nil
+ }
+ }
+}
diff --git a/examples/CPTTestApp-iPhone/Classes/CPTTestAppBarChartController.h b/examples/CPTTestApp-iPhone/Classes/CPTTestAppBarChartController.h
deleted file mode 100644
index 48141d7b6..000000000
--- a/examples/CPTTestApp-iPhone/Classes/CPTTestAppBarChartController.h
+++ /dev/null
@@ -1,15 +0,0 @@
-//
-// CPTTestAppBarChartController.h
-// CPTTestApp-iPhone
-//
-
-#import "CorePlot-CocoaTouch.h"
-#import
-
-@interface CPTTestAppBarChartController : UIViewController
-
-@property (nonatomic, readwrite, strong) NSTimer *timer;
-
--(void)timerFired;
-
-@end
diff --git a/examples/CPTTestApp-iPhone/Classes/CPTTestAppBarChartController.m b/examples/CPTTestApp-iPhone/Classes/CPTTestAppBarChartController.m
deleted file mode 100644
index dfee77707..000000000
--- a/examples/CPTTestApp-iPhone/Classes/CPTTestAppBarChartController.m
+++ /dev/null
@@ -1,185 +0,0 @@
-//
-// CPTTestAppBarChartController.m
-// CPTTestApp-iPhone
-//
-
-#import "CPTTestAppBarChartController.h"
-
-@interface CPTTestAppBarChartController()
-
-@property (nonatomic, readwrite, strong) CPTXYGraph *barChart;
-
-@end
-
-#pragma mark -
-
-@implementation CPTTestAppBarChartController
-
-@synthesize timer;
-@synthesize barChart;
-
-#pragma mark -
-#pragma mark Initialization and teardown
-
--(void)viewDidAppear:(BOOL)animated
-{
- [super viewDidAppear:animated];
-
- [self timerFired];
-#ifdef MEMORY_TEST
- self.timer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self
- selector:@selector(timerFired) userInfo:nil repeats:YES];
-#endif
-}
-
--(void)timerFired
-{
-#ifdef MEMORY_TEST
- static NSUInteger counter = 0;
-
- NSLog(@"\n----------------------------\ntimerFired: %lu", counter++);
-#endif
-
- // Create barChart from theme
- CPTXYGraph *newGraph = [[CPTXYGraph alloc] initWithFrame:CGRectZero];
- CPTTheme *theme = [CPTTheme themeNamed:kCPTDarkGradientTheme];
- [newGraph applyTheme:theme];
- self.barChart = newGraph;
-
- CPTGraphHostingView *hostingView = (CPTGraphHostingView *)self.view;
- hostingView.hostedGraph = newGraph;
-
- // Border
- newGraph.plotAreaFrame.borderLineStyle = nil;
- newGraph.plotAreaFrame.cornerRadius = 0.0;
- newGraph.plotAreaFrame.masksToBorder = NO;
-
- // Paddings
- newGraph.paddingLeft = 0.0;
- newGraph.paddingRight = 0.0;
- newGraph.paddingTop = 0.0;
- newGraph.paddingBottom = 0.0;
-
- newGraph.plotAreaFrame.paddingLeft = 70.0;
- newGraph.plotAreaFrame.paddingTop = 55.0;
- newGraph.plotAreaFrame.paddingRight = 20.0;
- newGraph.plotAreaFrame.paddingBottom = 80.0;
-
- // Graph title
- NSString *lineOne = @"Graph Title";
- NSString *lineTwo = @"Line 2";
-
- NSMutableAttributedString *graphTitle = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"%@\n%@", lineOne, lineTwo]];
- [graphTitle addAttribute:NSForegroundColorAttributeName value:[UIColor whiteColor] range:NSMakeRange(0, lineOne.length)];
- [graphTitle addAttribute:NSForegroundColorAttributeName value:[UIColor grayColor] range:NSMakeRange(lineOne.length + 1, lineTwo.length)];
- NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
- paragraphStyle.alignment = CPTTextAlignmentCenter;
- [graphTitle addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, graphTitle.length)];
- UIFont *titleFont = [UIFont fontWithName:@"Helvetica-Bold" size:16.0];
- [graphTitle addAttribute:NSFontAttributeName value:titleFont range:NSMakeRange(0, lineOne.length)];
- titleFont = [UIFont fontWithName:@"Helvetica" size:12.0];
- [graphTitle addAttribute:NSFontAttributeName value:titleFont range:NSMakeRange(lineOne.length + 1, lineTwo.length)];
-
- newGraph.attributedTitle = graphTitle;
-
- newGraph.titleDisplacement = CGPointMake(0.0, -20.0);
- newGraph.titlePlotAreaFrameAnchor = CPTRectAnchorTop;
-
- // Add plot space for horizontal bar charts
- CPTXYPlotSpace *plotSpace = (CPTXYPlotSpace *)newGraph.defaultPlotSpace;
- plotSpace.yRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble(0.0) length:CPTDecimalFromDouble(300.0)];
- plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble(0.0) length:CPTDecimalFromDouble(16.0)];
-
- CPTXYAxisSet *axisSet = (CPTXYAxisSet *)newGraph.axisSet;
- CPTXYAxis *x = axisSet.xAxis;
- x.axisLineStyle = nil;
- x.majorTickLineStyle = nil;
- x.minorTickLineStyle = nil;
- x.majorIntervalLength = CPTDecimalFromDouble(5.0);
- x.orthogonalCoordinateDecimal = CPTDecimalFromDouble(0.0);
- x.title = @"X Axis";
- x.titleLocation = CPTDecimalFromFloat(7.5f);
- x.titleOffset = 55.0;
-
- // Define some custom labels for the data elements
- x.labelRotation = CPTFloat(M_PI_4);
- x.labelingPolicy = CPTAxisLabelingPolicyNone;
- NSArray *customTickLocations = @[@1, @5, @10, @15];
- NSArray *xAxisLabels = @[@"Label A", @"Label B", @"Label C", @"Label D"];
- NSUInteger labelLocation = 0;
- NSMutableSet *customLabels = [NSMutableSet setWithCapacity:[xAxisLabels count]];
- for ( NSNumber *tickLocation in customTickLocations ) {
- CPTAxisLabel *newLabel = [[CPTAxisLabel alloc] initWithText:xAxisLabels[labelLocation++] textStyle:x.labelTextStyle];
- newLabel.tickLocation = [tickLocation decimalValue];
- newLabel.offset = x.labelOffset + x.majorTickLength;
- newLabel.rotation = CPTFloat(M_PI_4);
- [customLabels addObject:newLabel];
- }
-
- x.axisLabels = customLabels;
-
- CPTXYAxis *y = axisSet.yAxis;
- y.axisLineStyle = nil;
- y.majorTickLineStyle = nil;
- y.minorTickLineStyle = nil;
- y.majorIntervalLength = CPTDecimalFromDouble(50.0);
- y.orthogonalCoordinateDecimal = CPTDecimalFromDouble(0.0);
- y.title = @"Y Axis";
- y.titleOffset = 45.0;
- y.titleLocation = CPTDecimalFromFloat(150.0f);
-
- // First bar plot
- CPTBarPlot *barPlot = [CPTBarPlot tubularBarPlotWithColor:[CPTColor darkGrayColor] horizontalBars:NO];
- barPlot.baseValue = CPTDecimalFromDouble(0.0);
- barPlot.dataSource = self;
- barPlot.barOffset = CPTDecimalFromFloat(-0.25f);
- barPlot.identifier = @"Bar Plot 1";
- [newGraph addPlot:barPlot toPlotSpace:plotSpace];
-
- // Second bar plot
- barPlot = [CPTBarPlot tubularBarPlotWithColor:[CPTColor blueColor] horizontalBars:NO];
- barPlot.dataSource = self;
- barPlot.baseValue = CPTDecimalFromDouble(0.0);
- barPlot.barOffset = CPTDecimalFromFloat(0.25f);
- barPlot.barCornerRadius = 2.0;
- barPlot.identifier = @"Bar Plot 2";
- [newGraph addPlot:barPlot toPlotSpace:plotSpace];
-}
-
--(void)didReceiveMemoryWarning
-{
- [super didReceiveMemoryWarning]; // Releases the view if it doesn't have a superview
- // Release anything that's not essential, such as cached data
-}
-
-#pragma mark -
-#pragma mark Plot Data Source Methods
-
--(NSUInteger)numberOfRecordsForPlot:(CPTPlot *)plot
-{
- return 16;
-}
-
--(id)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index
-{
- NSNumber *num = nil;
-
- if ( [plot isKindOfClass:[CPTBarPlot class]] ) {
- switch ( fieldEnum ) {
- case CPTBarPlotFieldBarLocation:
- num = @(index);
- break;
-
- case CPTBarPlotFieldBarTip:
- num = @( (index + 1) * (index + 1) );
- if ( [plot.identifier isEqual:@"Bar Plot 2"] ) {
- num = @(num.integerValue - 10);
- }
- break;
- }
- }
-
- return num;
-}
-
-@end
diff --git a/examples/CPTTestApp-iPhone/Classes/CPTTestAppPieChartController.h b/examples/CPTTestApp-iPhone/Classes/CPTTestAppPieChartController.h
deleted file mode 100644
index df553ddf7..000000000
--- a/examples/CPTTestApp-iPhone/Classes/CPTTestAppPieChartController.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#import "CorePlot-CocoaTouch.h"
-#import
-
-@interface CPTTestAppPieChartController : UIViewController
-
-@property (nonatomic, readwrite, strong) NSArray *dataForChart;
-@property (nonatomic, readwrite, strong) NSTimer *timer;
-
--(void)timerFired;
-
-@end
diff --git a/examples/CPTTestApp-iPhone/Classes/CPTTestAppPieChartController.m b/examples/CPTTestApp-iPhone/Classes/CPTTestAppPieChartController.m
deleted file mode 100644
index 0ace47128..000000000
--- a/examples/CPTTestApp-iPhone/Classes/CPTTestAppPieChartController.m
+++ /dev/null
@@ -1,217 +0,0 @@
-#import "CPTTestAppPieChartController.h"
-
-@interface CPTTestAppPieChartController()
-
-@property (nonatomic, readwrite, strong) CPTXYGraph *pieChart;
-@property (nonatomic, readonly, assign) CGFloat pieMargin;
-@property (nonatomic, readonly, assign) CGFloat pieRadius;
-@property (nonatomic, readonly, assign) CGPoint pieCenter;
-
-@end
-
-#pragma mark -
-
-@implementation CPTTestAppPieChartController
-
-@synthesize dataForChart;
-@synthesize timer;
-@synthesize pieChart;
-
--(CGFloat)pieMargin
-{
- return self.pieChart.plotAreaFrame.borderLineStyle.lineWidth + CPTFloat(20.0);
-}
-
--(CGFloat)pieRadius
-{
- CGRect plotBounds = self.pieChart.plotAreaFrame.bounds;
-
- return MIN(plotBounds.size.width, plotBounds.size.height) / CPTFloat(2.0) - self.pieMargin;
-}
-
--(CGPoint)pieCenter
-{
- CGRect plotBounds = self.pieChart.plotAreaFrame.bounds;
-
- CGFloat y = 0.0;
-
- if ( plotBounds.size.width > plotBounds.size.height ) {
- y = 0.45;
- }
- else {
- y = (self.pieRadius + self.pieMargin) / plotBounds.size.height;
- }
-
- return CGPointMake(0.5, y);
-}
-
--(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
-{
- CPTPieChart *piePlot = (CPTPieChart *)[self.pieChart plotWithIdentifier:@"Pie Chart 1"];
- CGPoint newAnchor = self.pieCenter;
-
- // Animate the change
- [CATransaction begin];
- {
- [CATransaction setAnimationDuration:0.5];
- [CATransaction setAnimationTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]];
-
- NSString *key = NSStringFromSelector( @selector(pieRadius) );
-
- CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:key];
-
- animation.toValue = @(self.pieRadius * 8.0 / 9.0); // leave room for the exploded slice
- animation.fillMode = kCAFillModeForwards;
- animation.delegate = self;
- [piePlot addAnimation:animation forKey:key];
-
- key = NSStringFromSelector( @selector(centerAnchor) );
- animation = [CABasicAnimation animationWithKeyPath:key];
-
- animation.toValue = [NSValue valueWithBytes:&newAnchor objCType:@encode(CGPoint)];
- animation.fillMode = kCAFillModeForwards;
- animation.delegate = self;
- [piePlot addAnimation:animation forKey:key];
- }
- [CATransaction commit];
-}
-
-#pragma mark -
-#pragma mark Initialization and teardown
-
--(void)viewDidAppear:(BOOL)animated
-{
- [super viewDidAppear:animated];
-
- // Add some initial data
- self.dataForChart = @[@20.0, @30.0, @60.0];
-
- [self timerFired];
-#ifdef MEMORY_TEST
- self.timer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self
- selector:@selector(timerFired) userInfo:nil repeats:YES];
-#endif
-}
-
--(void)timerFired
-{
-#ifdef MEMORY_TEST
- static NSUInteger counter = 0;
-
- NSLog(@"\n----------------------------\ntimerFired: %lu", counter++);
-#endif
-
- // Create pieChart from theme
- CPTXYGraph *newGraph = [[CPTXYGraph alloc] initWithFrame:CGRectZero];
- CPTTheme *theme = [CPTTheme themeNamed:kCPTDarkGradientTheme];
- [newGraph applyTheme:theme];
- self.pieChart = newGraph;
-
- CPTGraphHostingView *hostingView = (CPTGraphHostingView *)self.view;
- hostingView.hostedGraph = newGraph;
-
- newGraph.paddingLeft = 20.0;
- newGraph.paddingTop = 20.0;
- newGraph.paddingRight = 20.0;
- newGraph.paddingBottom = 20.0;
-
- newGraph.axisSet = nil;
-
- CPTMutableTextStyle *whiteText = [CPTMutableTextStyle textStyle];
- whiteText.color = [CPTColor whiteColor];
-
- newGraph.titleTextStyle = whiteText;
- newGraph.title = @"Graph Title";
-
- newGraph.titleDisplacement = CGPointMake(0.0, -5.0);
-
- // Add pie chart
- CPTPieChart *piePlot = [[CPTPieChart alloc] init];
- piePlot.dataSource = self;
- piePlot.pieRadius = 1.0;
- piePlot.identifier = @"Pie Chart 1";
- piePlot.startAngle = CPTFloat(M_PI_4);
- piePlot.sliceDirection = CPTPieDirectionCounterClockwise;
- piePlot.borderLineStyle = [CPTLineStyle lineStyle];
- piePlot.delegate = self;
- [newGraph addPlot:piePlot];
-
- [newGraph layoutIfNeeded];
- [self didRotateFromInterfaceOrientation:UIInterfaceOrientationPortrait];
-
-#ifdef PERFORMANCE_TEST
- [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(changePlotRange) userInfo:nil repeats:YES];
-#endif
-}
-
--(void)didReceiveMemoryWarning
-{
- [super didReceiveMemoryWarning]; // Releases the view if it doesn't have a superview
- // Release anything that's not essential, such as cached data
-}
-
-#pragma mark -
-#pragma mark Plot Data Source Methods
-
--(NSUInteger)numberOfRecordsForPlot:(CPTPlot *)plot
-{
- return [self.dataForChart count];
-}
-
--(id)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index
-{
- if ( index >= [self.dataForChart count] ) {
- return nil;
- }
-
- if ( fieldEnum == CPTPieChartFieldSliceWidth ) {
- return (self.dataForChart)[index];
- }
- else {
- return @(index);
- }
-}
-
--(CPTLayer *)dataLabelForPlot:(CPTPlot *)plot recordIndex:(NSUInteger)index
-{
- CPTTextLayer *label = [[CPTTextLayer alloc] initWithText:[NSString stringWithFormat:@"%lu", (unsigned long)index]];
- CPTMutableTextStyle *textStyle = [label.textStyle mutableCopy];
-
- textStyle.color = [CPTColor lightGrayColor];
- label.textStyle = textStyle;
- return label;
-}
-
--(CGFloat)radialOffsetForPieChart:(CPTPieChart *)piePlot recordIndex:(NSUInteger)index
-{
- CGFloat offset = 0.0;
-
- if ( index == 0 ) {
- offset = piePlot.pieRadius / CPTFloat(8.0);
- }
-
- return offset;
-}
-
-#pragma mark -
-#pragma mark Delegate Methods
-
--(void)pieChart:(CPTPieChart *)plot sliceWasSelectedAtRecordIndex:(NSUInteger)index
-{
- self.pieChart.title = [NSString stringWithFormat:@"Selected index: %lu", (unsigned long)index];
-}
-
--(void)animationDidStop:(CAAnimation *)theAnimation finished:(BOOL)flag
-{
- CPTPieChart *piePlot = (CPTPieChart *)[self.pieChart plotWithIdentifier:@"Pie Chart 1"];
- CABasicAnimation *basicAnimation = (CABasicAnimation *)theAnimation;
- NSString *keyPath = basicAnimation.keyPath;
-
- if ( keyPath ) {
- [piePlot removeAnimationForKey:keyPath];
- [piePlot setValue:basicAnimation.toValue forKey:keyPath];
- }
- [piePlot repositionAllLabelAnnotations];
-}
-
-@end
diff --git a/examples/CPTTestApp-iPhone/Classes/CPTTestAppScatterPlotController.h b/examples/CPTTestApp-iPhone/Classes/CPTTestAppScatterPlotController.h
deleted file mode 100644
index 87d4645a3..000000000
--- a/examples/CPTTestApp-iPhone/Classes/CPTTestAppScatterPlotController.h
+++ /dev/null
@@ -1,15 +0,0 @@
-//
-// CPTTestAppScatterPlotController.h
-// CPTTestApp-iPhone
-//
-// Created by Brad Larson on 5/11/2009.
-//
-
-#import "CorePlot-CocoaTouch.h"
-#import
-
-@interface CPTTestAppScatterPlotController : UIViewController
-
-@property (nonatomic, readwrite, strong) NSMutableArray *dataForPlot;
-
-@end
diff --git a/examples/CPTTestApp-iPhone/Classes/CPTTestAppScatterPlotController.m b/examples/CPTTestApp-iPhone/Classes/CPTTestAppScatterPlotController.m
deleted file mode 100644
index 57426b89c..000000000
--- a/examples/CPTTestApp-iPhone/Classes/CPTTestAppScatterPlotController.m
+++ /dev/null
@@ -1,227 +0,0 @@
-//
-// CPTTestAppScatterPlotController.m
-// CPTTestApp-iPhone
-//
-// Created by Brad Larson on 5/11/2009.
-//
-
-#import "CPTTestAppScatterPlotController.h"
-
-@interface CPTTestAppScatterPlotController()
-
-@property (nonatomic, readwrite, strong) CPTXYGraph *graph;
-
-@end
-
-#pragma mark -
-
-@implementation CPTTestAppScatterPlotController
-
-@synthesize dataForPlot;
-@synthesize graph;
-
-#pragma mark -
-#pragma mark Initialization and teardown
-
--(void)viewDidLoad
-{
- [super viewDidLoad];
-
- // Create graph from theme
- CPTXYGraph *newGraph = [[CPTXYGraph alloc] initWithFrame:CGRectZero];
- CPTTheme *theme = [CPTTheme themeNamed:kCPTDarkGradientTheme];
- [newGraph applyTheme:theme];
- self.graph = newGraph;
-
- CPTGraphHostingView *hostingView = (CPTGraphHostingView *)self.view;
- hostingView.collapsesLayers = NO; // Setting to YES reduces GPU memory usage, but can slow drawing/scrolling
- hostingView.hostedGraph = newGraph;
-
- newGraph.paddingLeft = 10.0;
- newGraph.paddingTop = 20.0;
- newGraph.paddingRight = 10.0;
- newGraph.paddingBottom = 10.0;
-
- // Setup plot space
- CPTXYPlotSpace *plotSpace = (CPTXYPlotSpace *)newGraph.defaultPlotSpace;
- plotSpace.allowsUserInteraction = YES;
- plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble(1.0) length:CPTDecimalFromDouble(2.0)];
- plotSpace.yRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble(1.0) length:CPTDecimalFromDouble(3.0)];
-
- // Axes
- CPTXYAxisSet *axisSet = (CPTXYAxisSet *)newGraph.axisSet;
- CPTXYAxis *x = axisSet.xAxis;
- x.majorIntervalLength = CPTDecimalFromDouble(0.5);
- x.orthogonalCoordinateDecimal = CPTDecimalFromDouble(2.0);
- x.minorTicksPerInterval = 2;
- NSArray *exclusionRanges = @[[CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble(1.99) length:CPTDecimalFromDouble(0.02)],
- [CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble(0.99) length:CPTDecimalFromDouble(0.02)],
- [CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble(2.99) length:CPTDecimalFromDouble(0.02)]];
- x.labelExclusionRanges = exclusionRanges;
-
- CPTXYAxis *y = axisSet.yAxis;
- y.majorIntervalLength = CPTDecimalFromDouble(0.5);
- y.minorTicksPerInterval = 5;
- y.orthogonalCoordinateDecimal = CPTDecimalFromDouble(2.0);
- exclusionRanges = @[[CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble(1.99) length:CPTDecimalFromDouble(0.02)],
- [CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble(0.99) length:CPTDecimalFromDouble(0.02)],
- [CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble(3.99) length:CPTDecimalFromDouble(0.02)]];
- y.labelExclusionRanges = exclusionRanges;
- y.delegate = self;
-
- // Create a blue plot area
- CPTScatterPlot *boundLinePlot = [[CPTScatterPlot alloc] init];
- CPTMutableLineStyle *lineStyle = [CPTMutableLineStyle lineStyle];
- lineStyle.miterLimit = 1.0;
- lineStyle.lineWidth = 3.0;
- lineStyle.lineColor = [CPTColor blueColor];
- boundLinePlot.dataLineStyle = lineStyle;
- boundLinePlot.identifier = @"Blue Plot";
- boundLinePlot.dataSource = self;
- [newGraph addPlot:boundLinePlot];
-
- CPTImage *fillImage = [CPTImage imageNamed:@"BlueTexture"];
- fillImage.tiled = YES;
- CPTFill *areaImageFill = [CPTFill fillWithImage:fillImage];
- boundLinePlot.areaFill = areaImageFill;
- boundLinePlot.areaBaseValue = [[NSDecimalNumber zero] decimalValue];
-
- // Add plot symbols
- CPTMutableLineStyle *symbolLineStyle = [CPTMutableLineStyle lineStyle];
- symbolLineStyle.lineColor = [CPTColor blackColor];
- CPTPlotSymbol *plotSymbol = [CPTPlotSymbol ellipsePlotSymbol];
- plotSymbol.fill = [CPTFill fillWithColor:[CPTColor blueColor]];
- plotSymbol.lineStyle = symbolLineStyle;
- plotSymbol.size = CGSizeMake(10.0, 10.0);
- boundLinePlot.plotSymbol = plotSymbol;
-
- // Create a green plot area
- CPTScatterPlot *dataSourceLinePlot = [[CPTScatterPlot alloc] init];
- lineStyle = [CPTMutableLineStyle lineStyle];
- lineStyle.lineWidth = 3.0;
- lineStyle.lineColor = [CPTColor greenColor];
- lineStyle.dashPattern = @[@5.0, @5.0];
- dataSourceLinePlot.dataLineStyle = lineStyle;
- dataSourceLinePlot.identifier = @"Green Plot";
- dataSourceLinePlot.dataSource = self;
-
- // Put an area gradient under the plot above
- CPTColor *areaColor = [CPTColor colorWithComponentRed:CPTFloat(0.3) green:CPTFloat(1.0) blue:CPTFloat(0.3) alpha:CPTFloat(0.8)];
- CPTGradient *areaGradient = [CPTGradient gradientWithBeginningColor:areaColor endingColor:[CPTColor clearColor]];
- areaGradient.angle = -90.0;
- CPTFill *areaGradientFill = [CPTFill fillWithGradient:areaGradient];
- dataSourceLinePlot.areaFill = areaGradientFill;
- dataSourceLinePlot.areaBaseValue = CPTDecimalFromDouble(1.75);
-
- // Animate in the new plot, as an example
- dataSourceLinePlot.opacity = 0.0;
- [newGraph addPlot:dataSourceLinePlot];
-
- CABasicAnimation *fadeInAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"];
- fadeInAnimation.duration = 1.0;
- fadeInAnimation.removedOnCompletion = NO;
- fadeInAnimation.fillMode = kCAFillModeForwards;
- fadeInAnimation.toValue = @1.0;
- [dataSourceLinePlot addAnimation:fadeInAnimation forKey:@"animateOpacity"];
-
- // Add some initial data
- NSMutableArray *contentArray = [NSMutableArray arrayWithCapacity:100];
- for ( NSUInteger i = 0; i < 60; i++ ) {
- NSNumber *xVal = @(1.0 + i * 0.05);
- NSNumber *yVal = @(1.2 * arc4random() / (double)UINT32_MAX + 1.2);
- [contentArray addObject:@{ @"x": xVal,
- @"y": yVal }
- ];
- }
- self.dataForPlot = contentArray;
-
-#ifdef PERFORMANCE_TEST
- [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(changePlotRange) userInfo:nil repeats:YES];
-#endif
-}
-
--(void)changePlotRange
-{
- // Setup plot space
- CPTXYPlotSpace *plotSpace = (CPTXYPlotSpace *)self.graph.defaultPlotSpace;
-
- plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(0.0) length:CPTDecimalFromDouble(3.0 + 2.0 * arc4random() / UINT32_MAX)];
- plotSpace.yRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(0.0) length:CPTDecimalFromDouble(3.0 + 2.0 * arc4random() / UINT32_MAX)];
-}
-
-#pragma mark -
-#pragma mark Plot Data Source Methods
-
--(NSUInteger)numberOfRecordsForPlot:(CPTPlot *)plot
-{
- return self.dataForPlot.count;
-}
-
--(id)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index
-{
- NSString *key = (fieldEnum == CPTScatterPlotFieldX ? @"x" : @"y");
- NSNumber *num = self.dataForPlot[index][key];
-
- // Green plot gets shifted above the blue
- if ( [(NSString *)plot.identifier isEqualToString : @"Green Plot"] ) {
- if ( fieldEnum == CPTScatterPlotFieldY ) {
- num = @([num doubleValue] + 1.0);
- }
- }
- return num;
-}
-
-#pragma mark -
-#pragma mark Axis Delegate Methods
-
--(BOOL)axis:(CPTAxis *)axis shouldUpdateAxisLabelsAtLocations:(NSSet *)locations
-{
- static CPTTextStyle *positiveStyle = nil;
- static CPTTextStyle *negativeStyle = nil;
- static dispatch_once_t positiveOnce = 0;
- static dispatch_once_t negativeOnce = 0;
-
- NSFormatter *formatter = axis.labelFormatter;
- CGFloat labelOffset = axis.labelOffset;
- NSDecimalNumber *zero = [NSDecimalNumber zero];
-
- NSMutableSet *newLabels = [NSMutableSet set];
-
- for ( NSDecimalNumber *tickLocation in locations ) {
- CPTTextStyle *theLabelTextStyle;
-
- if ( [tickLocation isGreaterThanOrEqualTo:zero] ) {
- dispatch_once(&positiveOnce, ^{
- CPTMutableTextStyle *newStyle = [axis.labelTextStyle mutableCopy];
- newStyle.color = [CPTColor greenColor];
- positiveStyle = newStyle;
- });
-
- theLabelTextStyle = positiveStyle;
- }
- else {
- dispatch_once(&negativeOnce, ^{
- CPTMutableTextStyle *newStyle = [axis.labelTextStyle mutableCopy];
- newStyle.color = [CPTColor redColor];
- negativeStyle = newStyle;
- });
-
- theLabelTextStyle = negativeStyle;
- }
-
- NSString *labelString = [formatter stringForObjectValue:tickLocation];
- CPTTextLayer *newLabelLayer = [[CPTTextLayer alloc] initWithText:labelString style:theLabelTextStyle];
-
- CPTAxisLabel *newLabel = [[CPTAxisLabel alloc] initWithContentLayer:newLabelLayer];
- newLabel.tickLocation = tickLocation.decimalValue;
- newLabel.offset = labelOffset;
-
- [newLabels addObject:newLabel];
- }
-
- axis.axisLabels = newLabels;
-
- return NO;
-}
-
-@end
diff --git a/examples/CPTTestApp-iPhone/Classes/CPTTestApp_iPhoneAppDelegate.h b/examples/CPTTestApp-iPhone/Classes/CPTTestApp_iPhoneAppDelegate.h
deleted file mode 100644
index d985da722..000000000
--- a/examples/CPTTestApp-iPhone/Classes/CPTTestApp_iPhoneAppDelegate.h
+++ /dev/null
@@ -1,15 +0,0 @@
-//
-// CPTTestApp_iPhoneAppDelegate.h
-// CPTTestApp-iPhone
-//
-// Toolbar icons in the application are courtesy of Joseph Wain / glyphish.com
-// See the license file in the GlyphishIcons directory for more information on these icons
-
-#import
-
-@interface CPTTestApp_iPhoneAppDelegate : NSObject
-
-@property (nonatomic, readwrite, strong) IBOutlet UIWindow *window;
-@property (nonatomic, readwrite, strong) IBOutlet UITabBarController *tabBarController;
-
-@end
diff --git a/examples/CPTTestApp-iPhone/Classes/CPTTestApp_iPhoneAppDelegate.m b/examples/CPTTestApp-iPhone/Classes/CPTTestApp_iPhoneAppDelegate.m
deleted file mode 100644
index 0203992bc..000000000
--- a/examples/CPTTestApp-iPhone/Classes/CPTTestApp_iPhoneAppDelegate.m
+++ /dev/null
@@ -1,32 +0,0 @@
-//
-// CPTTestApp_iPhoneAppDelegate.m
-// CPTTestApp-iPhone
-//
-// Created by Brad Larson on 5/11/2009.
-
-#import "CPTTestApp_iPhoneAppDelegate.h"
-
-@implementation CPTTestApp_iPhoneAppDelegate
-
-@synthesize window;
-@synthesize tabBarController;
-
--(void)applicationDidFinishLaunching:(UIApplication *)application
-{
- self.window.rootViewController = self.tabBarController;
- [self.window makeKeyAndVisible];
-}
-
-/*
- * // Optional UITabBarControllerDelegate method
- * - (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
- * }
- */
-
-/*
- * // Optional UITabBarControllerDelegate method
- * - (void)tabBarController:(UITabBarController *)tabBarController didEndCustomizingViewControllers:(NSArray *)viewControllers changed:(BOOL)changed {
- * }
- */
-
-@end
diff --git a/examples/CPTTestApp-iPhone/Classes/PieChartController.swift b/examples/CPTTestApp-iPhone/Classes/PieChartController.swift
new file mode 100644
index 000000000..3b99ed916
--- /dev/null
+++ b/examples/CPTTestApp-iPhone/Classes/PieChartController.swift
@@ -0,0 +1,102 @@
+import UIKit
+
+class PieChartController : UIViewController, CPTPieChartDataSource, CPTPieChartDelegate {
+ private var pieGraph : CPTXYGraph? = nil
+
+ let dataForChart = [20.0, 30.0, 60.0]
+
+ // MARK: - Initialization
+
+ override func viewDidAppear(_ animated : Bool)
+ {
+ super.viewDidAppear(animated)
+
+ // Create graph from theme
+ let newGraph = CPTXYGraph(frame: .zero)
+ newGraph.apply(CPTTheme(named: .darkGradientTheme))
+
+ let hostingView = self.view as! CPTGraphHostingView
+ hostingView.hostedGraph = newGraph
+
+ // Paddings
+ newGraph.paddingLeft = 20.0
+ newGraph.paddingRight = 20.0
+ newGraph.paddingTop = 20.0
+ newGraph.paddingBottom = 20.0
+
+ newGraph.axisSet = nil
+
+ let whiteText = CPTMutableTextStyle()
+ whiteText.color = .white()
+
+ newGraph.titleTextStyle = whiteText
+ newGraph.title = "Graph Title"
+
+ // Add pie chart
+ let piePlot = CPTPieChart(frame: .zero)
+ piePlot.dataSource = self
+ piePlot.pieRadius = 131.0
+ piePlot.identifier = "Pie Chart 1" as NSString
+ piePlot.startAngle = CGFloat(.pi / 4.0)
+ piePlot.sliceDirection = .counterClockwise
+ piePlot.centerAnchor = CGPoint(x: 0.5, y: 0.38)
+ piePlot.borderLineStyle = CPTLineStyle()
+ piePlot.delegate = self
+ newGraph.add(piePlot)
+
+ self.pieGraph = newGraph
+ }
+
+ // MARK: - Plot Data Source Methods
+
+ func numberOfRecords(for plot: CPTPlot) -> UInt
+ {
+ return UInt(self.dataForChart.count)
+ }
+
+ func number(for plot: CPTPlot, field: UInt, record: UInt) -> Any?
+ {
+ if Int(record) > self.dataForChart.count {
+ return nil
+ }
+ else {
+ switch CPTPieChartField(rawValue: Int(field))! {
+ case .sliceWidth:
+ return (self.dataForChart)[Int(record)] as NSNumber
+
+ default:
+ return record as NSNumber
+ }
+ }
+ }
+
+ func dataLabel(for plot: CPTPlot, record: UInt) -> CPTLayer?
+ {
+ let label = CPTTextLayer(text:"\(record)")
+
+ if let textStyle = label.textStyle?.mutableCopy() as? CPTMutableTextStyle {
+ textStyle.color = .lightGray()
+
+ label.textStyle = textStyle
+ }
+
+ return label
+ }
+
+ func radialOffset(for piePlot: CPTPieChart, record recordIndex: UInt) -> CGFloat
+ {
+ var offset: CGFloat = 0.0
+
+ if ( recordIndex == 0 ) {
+ offset = piePlot.pieRadius / 8.0
+ }
+
+ return offset
+ }
+
+ // MARK: - Delegate Methods
+
+ func pieChart(_ plot: CPTPieChart, sliceWasSelectedAtRecord idx: UInt) {
+ self.pieGraph?.title = "Selected index: \(idx)"
+ }
+}
diff --git a/examples/CPTTestApp-iPhone/Classes/ScatterPlotController.swift b/examples/CPTTestApp-iPhone/Classes/ScatterPlotController.swift
new file mode 100644
index 000000000..76b3191ee
--- /dev/null
+++ b/examples/CPTTestApp-iPhone/Classes/ScatterPlotController.swift
@@ -0,0 +1,186 @@
+import UIKit
+
+class ScatterPlotController : UIViewController, CPTScatterPlotDataSource, CPTAxisDelegate {
+ private var scatterGraph : CPTXYGraph? = nil
+
+ typealias plotDataType = [CPTScatterPlotField : Double]
+ private var dataForPlot = [plotDataType]()
+
+ // MARK: - Initialization
+
+ override func viewDidAppear(_ animated : Bool)
+ {
+ super.viewDidAppear(animated)
+
+ // Create graph from theme
+ let newGraph = CPTXYGraph(frame: .zero)
+ newGraph.apply(CPTTheme(named: .darkGradientTheme))
+
+ let hostingView = self.view as! CPTGraphHostingView
+ hostingView.hostedGraph = newGraph
+
+ // Paddings
+ newGraph.paddingLeft = 10.0
+ newGraph.paddingRight = 10.0
+ newGraph.paddingTop = 10.0
+ newGraph.paddingBottom = 10.0
+
+ // Plot space
+ let plotSpace = newGraph.defaultPlotSpace as! CPTXYPlotSpace
+ plotSpace.allowsUserInteraction = true
+ plotSpace.yRange = CPTPlotRange(location:1.0, length:2.0)
+ plotSpace.xRange = CPTPlotRange(location:1.0, length:3.0)
+
+ // Axes
+ let axisSet = newGraph.axisSet as! CPTXYAxisSet
+
+ if let x = axisSet.xAxis {
+ x.majorIntervalLength = 0.5
+ x.orthogonalPosition = 2.0
+ x.minorTicksPerInterval = 2
+ x.labelExclusionRanges = [
+ CPTPlotRange(location: 0.99, length: 0.02),
+ CPTPlotRange(location: 1.99, length: 0.02),
+ CPTPlotRange(location: 2.99, length: 0.02)
+ ]
+ }
+
+ if let y = axisSet.yAxis {
+ y.majorIntervalLength = 0.5
+ y.minorTicksPerInterval = 5
+ y.orthogonalPosition = 2.0
+ y.labelExclusionRanges = [
+ CPTPlotRange(location: 0.99, length: 0.02),
+ CPTPlotRange(location: 1.99, length: 0.02),
+ CPTPlotRange(location: 3.99, length: 0.02)
+ ]
+ y.delegate = self
+ }
+
+ // Create a blue plot area
+ let boundLinePlot = CPTScatterPlot(frame: .zero)
+ let blueLineStyle = CPTMutableLineStyle()
+ blueLineStyle.miterLimit = 1.0
+ blueLineStyle.lineWidth = 3.0
+ blueLineStyle.lineColor = .blue()
+ boundLinePlot.dataLineStyle = blueLineStyle
+ boundLinePlot.identifier = "Blue Plot" as NSString
+ boundLinePlot.dataSource = self
+ newGraph.add(boundLinePlot)
+
+ let fillImage = CPTImage(named:"BlueTexture")
+ fillImage.isTiled = true
+ boundLinePlot.areaFill = CPTFill(image: fillImage)
+ boundLinePlot.areaBaseValue = 0.0
+
+ // Add plot symbols
+ let symbolLineStyle = CPTMutableLineStyle()
+ symbolLineStyle.lineColor = .black()
+ let plotSymbol = CPTPlotSymbol.ellipse()
+ plotSymbol.fill = CPTFill(color: .blue())
+ plotSymbol.lineStyle = symbolLineStyle
+ plotSymbol.size = CGSize(width: 10.0, height: 10.0)
+ boundLinePlot.plotSymbol = plotSymbol
+
+ // Create a green plot area
+ let dataSourceLinePlot = CPTScatterPlot(frame: .zero)
+ let greenLineStyle = CPTMutableLineStyle()
+ greenLineStyle.lineWidth = 3.0
+ greenLineStyle.lineColor = .green()
+ greenLineStyle.dashPattern = [5.0, 5.0]
+ dataSourceLinePlot.dataLineStyle = greenLineStyle
+ dataSourceLinePlot.identifier = "Green Plot" as NSString
+ dataSourceLinePlot.dataSource = self
+
+ // Put an area gradient under the plot above
+ let areaColor = CPTColor(componentRed: 0.3, green: 1.0, blue: 0.3, alpha: 0.8)
+ let areaGradient = CPTGradient(beginning: areaColor, ending: .clear())
+ areaGradient.angle = -90.0
+ let areaGradientFill = CPTFill(gradient: areaGradient)
+ dataSourceLinePlot.areaFill = areaGradientFill
+ dataSourceLinePlot.areaBaseValue = 1.75
+
+ // Animate in the new plot, as an example
+ dataSourceLinePlot.opacity = 0.0
+ newGraph.add(dataSourceLinePlot)
+
+ let fadeInAnimation = CABasicAnimation(keyPath: "opacity")
+ fadeInAnimation.duration = 1.0
+ fadeInAnimation.isRemovedOnCompletion = false
+ fadeInAnimation.fillMode = .forwards
+ fadeInAnimation.toValue = 1.0
+ dataSourceLinePlot.add(fadeInAnimation, forKey: "animateOpacity")
+
+ // Add some initial data
+ var contentArray = [plotDataType]()
+ for i in 0 ..< 60 {
+ let x = 1.0 + Double(i) * 0.05
+ let y = 1.2 * Double(arc4random()) / Double(UInt32.max) + 1.2
+ let dataPoint: plotDataType = [.X: x, .Y: y]
+ contentArray.append(dataPoint)
+ }
+ self.dataForPlot = contentArray
+
+ self.scatterGraph = newGraph
+ }
+
+ // MARK: - Plot Data Source Methods
+
+ func numberOfRecords(for plot: CPTPlot) -> UInt
+ {
+ return UInt(self.dataForPlot.count)
+ }
+
+ func number(for plot: CPTPlot, field: UInt, record: UInt) -> Any?
+ {
+ let plotField = CPTScatterPlotField(rawValue: Int(field))
+
+ if let num = self.dataForPlot[Int(record)][plotField!] {
+ let plotID = plot.identifier as! String
+ if (plotField! == .Y) && (plotID == "Green Plot") {
+ return (num + 1.0) as NSNumber
+ }
+ else {
+ return num as NSNumber
+ }
+ }
+ else {
+ return nil
+ }
+ }
+
+ // MARK: - Axis Delegate Methods
+
+ func axis(_ axis: CPTAxis, shouldUpdateAxisLabelsAtLocations locations: Set) -> Bool
+ {
+ if let formatter = axis.labelFormatter {
+ let labelOffset = axis.labelOffset
+
+ var newLabels = Set()
+
+ for tickLocation in locations {
+ if let labelTextStyle = axis.labelTextStyle?.mutableCopy() as? CPTMutableTextStyle {
+ if tickLocation.doubleValue >= 0.0 {
+ labelTextStyle.color = .green()
+ }
+ else {
+ labelTextStyle.color = .red()
+ }
+
+ let labelString = formatter.string(for:tickLocation)
+ let newLabelLayer = CPTTextLayer(text: labelString, style: labelTextStyle)
+
+ let newLabel = CPTAxisLabel(contentLayer: newLabelLayer)
+ newLabel.tickLocation = tickLocation
+ newLabel.offset = labelOffset
+
+ newLabels.insert(newLabel)
+ }
+
+ axis.axisLabels = newLabels
+ }
+ }
+
+ return false
+ }
+}
diff --git a/examples/CPTTestApp-iPhone/Classes/iPhoneAppDelegate.swift b/examples/CPTTestApp-iPhone/Classes/iPhoneAppDelegate.swift
new file mode 100644
index 000000000..42189f9ec
--- /dev/null
+++ b/examples/CPTTestApp-iPhone/Classes/iPhoneAppDelegate.swift
@@ -0,0 +1,20 @@
+import UIKit
+
+// Toolbar icons in the application are courtesy of Joseph Wain / glyphish.com
+// See the license file in the GlyphishIcons directory for more information on these icons
+
+@UIApplicationMain
+
+class iPhoneAppDelegate : NSObject, UIApplicationDelegate, UITabBarControllerDelegate
+{
+
+ @IBOutlet var window: UIWindow? = nil
+ @IBOutlet var tabBarController: UITabBarController? = nil
+
+ func applicationDidFinishLaunching(_ application: UIApplication) {
+ if let myWindow = self.window {
+ myWindow.rootViewController = self.tabBarController
+ myWindow.makeKeyAndVisible()
+ }
+ }
+}
diff --git a/examples/CPTTestApp-iPhone/MainWindow.xib b/examples/CPTTestApp-iPhone/MainWindow.xib
deleted file mode 100644
index 68ae98bc2..000000000
--- a/examples/CPTTestApp-iPhone/MainWindow.xib
+++ /dev/null
@@ -1,370 +0,0 @@
-
-
-
- 528
- 12C60
- 2843
- 1187.34
- 625.00
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- 1929
-
-
- YES
- IBProxyObject
- IBUICustomObject
- IBUITabBar
- IBUITabBarController
- IBUITabBarItem
- IBUIViewController
- IBUIWindow
-
-
- YES
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
- PluginDependencyRecalculationVersion
-
-
-
- YES
-
- IBFilesOwner
- IBCocoaTouchFramework
-
-
- IBFirstResponder
- IBCocoaTouchFramework
-
-
- IBCocoaTouchFramework
-
-
-
- 1316
-
- {320, 480}
-
-
-
- 1
- MSAxIDEAA
-
- NO
- NO
-
- IBCocoaTouchFramework
- YES
- YES
-
-
-
-
-
- 1
- 1
-
- IBCocoaTouchFramework
- NO
-
- Scatter Plot
-
- Scatter Plot
-
- NSImage
- 16-line-chart.png
-
- IBCocoaTouchFramework
-
-
- ScatterPlot
-
- 1
- 1
-
- IBCocoaTouchFramework
- NO
-
-
- YES
-
-
-
- Bar Chart
-
- NSImage
- 17-bar-chart.png
-
- IBCocoaTouchFramework
-
-
- BarChart
-
- 1
- 1
-
- IBCocoaTouchFramework
- NO
-
-
- Pie Chart
-
- Pie Chart
-
- NSImage
- 62-contrast.png
-
- IBCocoaTouchFramework
-
-
- YES
-
-
- PieChart
-
- 1
- 1
-
- IBCocoaTouchFramework
- NO
-
-
-
-
- 266
- {{0, 431}, {320, 49}}
-
-
-
- 3
- MCAwAA
-
- NO
- IBCocoaTouchFramework
-
-
-
-
-
- YES
-
-
- delegate
-
-
-
- 99
-
-
-
- window
-
-
-
- 9
-
-
-
- tabBarController
-
-
-
- 113
-
-
-
-
- YES
-
- 0
-
-
-
-
-
- 2
-
-
- YES
-
-
-
-
- -1
-
-
- File's Owner
-
-
- 3
-
-
-
-
- 106
-
-
- YES
-
-
-
-
-
-
-
-
- 107
-
-
-
-
- 108
-
-
- YES
-
-
-
-
-
- 109
-
-
- YES
-
-
-
-
-
- 110
-
-
-
-
- 111
-
-
-
-
- -2
-
-
-
-
- 125
-
-
- YES
-
-
-
-
-
- 126
-
-
-
-
-
-
- YES
-
- YES
- -1.CustomClassName
- -1.IBPluginDependency
- -2.CustomClassName
- -2.IBPluginDependency
- 106.IBPluginDependency
- 107.IBPluginDependency
- 108.CustomClassName
- 108.IBPluginDependency
- 109.CustomClassName
- 109.IBPluginDependency
- 110.IBPluginDependency
- 111.IBPluginDependency
- 125.CustomClassName
- 125.IBPluginDependency
- 126.IBPluginDependency
- 2.IBAttributePlaceholdersKey
- 2.IBPluginDependency
- 3.CustomClassName
- 3.IBPluginDependency
-
-
- YES
- UIApplication
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- UIResponder
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- CPTTestAppScatterPlotController
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- CPTTestAppBarChartController
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- CPTTestAppPieChartController
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
- YES
-
-
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- CPTTestApp_iPhoneAppDelegate
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
-
- YES
-
-
-
-
-
- YES
-
-
-
-
- 126
-
-
- 0
- IBCocoaTouchFramework
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
-
-
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
-
-
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3
-
-
- YES
- 3
-
- YES
-
- YES
- 16-line-chart.png
- 17-bar-chart.png
- 62-contrast.png
-
-
- YES
- {30, 24}
- {29, 24}
- {20, 20}
-
-
- 1929
-
-
diff --git a/examples/CPTTestApp-iPhone/PieChart.xib b/examples/CPTTestApp-iPhone/PieChart.xib
deleted file mode 100644
index 757532e4b..000000000
--- a/examples/CPTTestApp-iPhone/PieChart.xib
+++ /dev/null
@@ -1,354 +0,0 @@
-
-
-
- 768
- 10F569
- 804
- 1038.29
- 461.00
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- 123
-
-
- YES
-
-
- YES
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
- YES
-
- YES
-
-
- YES
-
-
-
- YES
-
- IBFilesOwner
- IBCocoaTouchFramework
-
-
- IBFirstResponder
- IBCocoaTouchFramework
-
-
-
- 274
- {320, 411}
-
- 3
- MQA
-
- 2
-
-
-
-
- IBCocoaTouchFramework
-
-
-
-
- YES
-
-
- view
-
-
-
- 3
-
-
-
-
- YES
-
- 0
-
-
-
-
-
- 1
-
-
- YES
-
-
-
-
- -1
-
-
- File's Owner
-
-
- -2
-
-
-
-
-
-
- YES
-
- YES
- -1.CustomClassName
- -2.CustomClassName
- 1.CustomClassName
- 1.IBEditorWindowLastContentRect
- 1.IBPluginDependency
-
-
- YES
- CPTTestAppPieChartController
- UIResponder
- CPTGraphHostingView
- {{158, 204}, {320, 480}}
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
-
- YES
-
-
- YES
-
-
-
-
- YES
-
-
- YES
-
-
-
- 9
-
-
-
- YES
-
- CPTGraphHostingView
- UIView
-
- IBUserSource
-
-
-
-
- CPTTestAppPieChartController
- UIViewController
-
- IBProjectSource
- Classes/CPTTestAppPieChartController.h
-
-
-
-
- YES
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSError.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSFileManager.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSKeyValueCoding.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSKeyValueObserving.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSKeyedArchiver.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSObject.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSRunLoop.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSThread.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSURL.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSURLConnection.h
-
-
-
- NSObject
-
- IBFrameworkSource
- QuartzCore.framework/Headers/CAAnimation.h
-
-
-
- NSObject
-
- IBFrameworkSource
- QuartzCore.framework/Headers/CALayer.h
-
-
-
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UIAccessibility.h
-
-
-
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UINibLoading.h
-
-
-
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UIResponder.h
-
-
-
- UIResponder
- NSObject
-
-
-
- UISearchBar
- UIView
-
- IBFrameworkSource
- UIKit.framework/Headers/UISearchBar.h
-
-
-
- UISearchDisplayController
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UISearchDisplayController.h
-
-
-
- UIView
-
- IBFrameworkSource
- UIKit.framework/Headers/UITextField.h
-
-
-
- UIView
- UIResponder
-
- IBFrameworkSource
- UIKit.framework/Headers/UIView.h
-
-
-
- UIViewController
-
- IBFrameworkSource
- UIKit.framework/Headers/UINavigationController.h
-
-
-
- UIViewController
-
- IBFrameworkSource
- UIKit.framework/Headers/UIPopoverController.h
-
-
-
- UIViewController
-
- IBFrameworkSource
- UIKit.framework/Headers/UISplitViewController.h
-
-
-
- UIViewController
-
- IBFrameworkSource
- UIKit.framework/Headers/UITabBarController.h
-
-
-
- UIViewController
- UIResponder
-
- IBFrameworkSource
- UIKit.framework/Headers/UIViewController.h
-
-
-
-
- 0
- IBCocoaTouchFramework
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
-
-
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
-
-
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3
-
-
- YES
- CPTTestApp-iPhone.xcodeproj
- 3
- 123
-
-
diff --git a/examples/CPTTestApp-iPhone/ScatterPlot.xib b/examples/CPTTestApp-iPhone/ScatterPlot.xib
deleted file mode 100644
index df5411823..000000000
--- a/examples/CPTTestApp-iPhone/ScatterPlot.xib
+++ /dev/null
@@ -1,355 +0,0 @@
-
-
-
- 528
- 10F569
- 804
- 1038.29
- 461.00
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- 123
-
-
- YES
-
-
- YES
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
- YES
-
- YES
-
-
- YES
-
-
-
- YES
-
- IBFilesOwner
- IBCocoaTouchFramework
-
-
- IBFirstResponder
- IBCocoaTouchFramework
-
-
-
- 274
- {320, 460}
-
-
-
- 3
- MQA
-
- 2
-
-
-
- IBCocoaTouchFramework
-
-
-
-
- YES
-
-
- view
-
-
-
- 3
-
-
-
-
- YES
-
- 0
-
-
-
-
-
- 1
-
-
- YES
-
-
-
-
- -1
-
-
- File's Owner
-
-
- -2
-
-
-
-
-
-
- YES
-
- YES
- -1.CustomClassName
- -2.CustomClassName
- 1.CustomClassName
- 1.IBEditorWindowLastContentRect
- 1.IBPluginDependency
-
-
- YES
- CPTTestAppScatterPlotController
- UIResponder
- CPTGraphHostingView
- {{430, 168}, {320, 480}}
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
-
- YES
-
-
- YES
-
-
-
-
- YES
-
-
- YES
-
-
-
- 4
-
-
-
- YES
-
- CPTGraphHostingView
- UIView
-
- IBUserSource
-
-
-
-
- CPTTestAppScatterPlotController
- UIViewController
-
- IBProjectSource
- Classes/CPTTestAppScatterPlotController.h
-
-
-
-
- YES
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSError.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSFileManager.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSKeyValueCoding.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSKeyValueObserving.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSKeyedArchiver.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSObject.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSRunLoop.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSThread.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSURL.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSURLConnection.h
-
-
-
- NSObject
-
- IBFrameworkSource
- QuartzCore.framework/Headers/CAAnimation.h
-
-
-
- NSObject
-
- IBFrameworkSource
- QuartzCore.framework/Headers/CALayer.h
-
-
-
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UIAccessibility.h
-
-
-
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UINibLoading.h
-
-
-
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UIResponder.h
-
-
-
- UIResponder
- NSObject
-
-
-
- UISearchBar
- UIView
-
- IBFrameworkSource
- UIKit.framework/Headers/UISearchBar.h
-
-
-
- UISearchDisplayController
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UISearchDisplayController.h
-
-
-
- UIView
-
- IBFrameworkSource
- UIKit.framework/Headers/UITextField.h
-
-
-
- UIView
- UIResponder
-
- IBFrameworkSource
- UIKit.framework/Headers/UIView.h
-
-
-
- UIViewController
-
- IBFrameworkSource
- UIKit.framework/Headers/UINavigationController.h
-
-
-
- UIViewController
-
- IBFrameworkSource
- UIKit.framework/Headers/UIPopoverController.h
-
-
-
- UIViewController
-
- IBFrameworkSource
- UIKit.framework/Headers/UISplitViewController.h
-
-
-
- UIViewController
-
- IBFrameworkSource
- UIKit.framework/Headers/UITabBarController.h
-
-
-
- UIViewController
- UIResponder
-
- IBFrameworkSource
- UIKit.framework/Headers/UIViewController.h
-
-
-
-
- 0
- IBCocoaTouchFramework
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
-
-
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
-
-
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3
-
-
- YES
- CPTTestApp-iPhone.xcodeproj
- 3
- 123
-
-
diff --git a/examples/CPTTestApp-iPhone/main.m b/examples/CPTTestApp-iPhone/main.m
deleted file mode 100644
index 762bdbbff..000000000
--- a/examples/CPTTestApp-iPhone/main.m
+++ /dev/null
@@ -1,17 +0,0 @@
-//
-// main.m
-// CPTTestApp-iPhone
-//
-// Created by Brad Larson on 5/11/2009.
-//
-
-#import
-
-int main(int argc, char *argv[])
-{
- @autoreleasepool {
- int retVal = UIApplicationMain(argc, argv, nil, nil);
-
- return retVal;
- }
-}
diff --git a/examples/CPTTestApp/Info.plist b/examples/CPTTestApp/Base.lproj/Info.plist
similarity index 100%
rename from examples/CPTTestApp/Info.plist
rename to examples/CPTTestApp/Base.lproj/Info.plist
diff --git a/examples/CPTTestApp/CPTTestApp.xcodeproj/project.pbxproj b/examples/CPTTestApp/CPTTestApp.xcodeproj/project.pbxproj
index 0644d707d..a844a7791 100644
--- a/examples/CPTTestApp/CPTTestApp.xcodeproj/project.pbxproj
+++ b/examples/CPTTestApp/CPTTestApp.xcodeproj/project.pbxproj
@@ -3,26 +3,25 @@
archiveVersion = 1;
classes = {
};
- objectVersion = 46;
+ objectVersion = 47;
objects = {
/* Begin PBXBuildFile section */
- 07032B7111ABB9F300463D20 /* CorePlot.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 07032B6A11ABB9E000463D20 /* CorePlot.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
- 07032B7211ABB9F700463D20 /* CorePlot.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 07032B6A11ABB9E000463D20 /* CorePlot.framework */; };
077382B10F3DC1FB002F10E2 /* Controller.m in Sources */ = {isa = PBXBuildFile; fileRef = 077382B00F3DC1FB002F10E2 /* Controller.m */; };
- 07C13BBB0FF9322A00BEE616 /* BlueTexture.png in Resources */ = {isa = PBXBuildFile; fileRef = 07C13BBA0FF9322A00BEE616 /* BlueTexture.png */; };
8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; };
8D11072D0486CEB800E47090 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; };
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
- 90AF4F440F36CF1800753D26 /* CPTTestApp.xib in Resources */ = {isa = PBXBuildFile; fileRef = 90AF4F430F36CF1800753D26 /* CPTTestApp.xib */; };
BC8E74240FC0B96000DF8511 /* RotationView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC8E74230FC0B96000DF8511 /* RotationView.m */; };
- C317AB4F1093CC1E00B25011 /* PlotSymbolDemo.xib in Resources */ = {isa = PBXBuildFile; fileRef = C317AB4E1093CC1E00B25011 /* PlotSymbolDemo.xib */; };
- C317AB711093E09D00B25011 /* AxisDemo.xib in Resources */ = {isa = PBXBuildFile; fileRef = C317AB701093E09D00B25011 /* AxisDemo.xib */; };
C317AB751093E17500B25011 /* AxisDemoController.m in Sources */ = {isa = PBXBuildFile; fileRef = C317AB731093E17500B25011 /* AxisDemoController.m */; };
C34D4F8E0F8ED78400969C24 /* CPTPlotSymbolTestController.m in Sources */ = {isa = PBXBuildFile; fileRef = C34D4F8C0F8ED78400969C24 /* CPTPlotSymbolTestController.m */; };
- C38017DD124132020052B00D /* SelectionDemo.xib in Resources */ = {isa = PBXBuildFile; fileRef = C38017DC124132020052B00D /* SelectionDemo.xib */; };
+ C36912D21C0B48DF000A1D61 /* CorePlot.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 07032B6A11ABB9E000463D20 /* CorePlot.framework */; };
+ C36912D31C0B48DF000A1D61 /* CorePlot.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 07032B6A11ABB9E000463D20 /* CorePlot.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
C38017E1124132610052B00D /* SelectionDemoController.m in Sources */ = {isa = PBXBuildFile; fileRef = C38017E0124132610052B00D /* SelectionDemoController.m */; };
C39BB9A4181C154500D95E01 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BC8E737C0FC0B3CF00DF8511 /* QuartzCore.framework */; };
+ C3D0A18B20E017C500BA2921 /* AxisDemo.xib in Resources */ = {isa = PBXBuildFile; fileRef = C3D0A18D20E017C500BA2921 /* AxisDemo.xib */; };
+ C3D0A19A20E017CC00BA2921 /* CPTTestApp.xib in Resources */ = {isa = PBXBuildFile; fileRef = C3D0A19C20E017CC00BA2921 /* CPTTestApp.xib */; };
+ C3D0A19D20E017D100BA2921 /* PlotSymbolDemo.xib in Resources */ = {isa = PBXBuildFile; fileRef = C3D0A19F20E017D100BA2921 /* PlotSymbolDemo.xib */; };
+ C3D0A1A020E017D600BA2921 /* SelectionDemo.xib in Resources */ = {isa = PBXBuildFile; fileRef = C3D0A1A220E017D600BA2921 /* SelectionDemo.xib */; };
C3D3935C19FD653300148319 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C3D3935B19FD653300148319 /* Images.xcassets */; };
/* End PBXBuildFile section */
@@ -48,6 +47,55 @@
remoteGlobalIDString = 8DC2EF4F0486A6940098B216;
remoteInfo = CorePlot;
};
+ C36912D41C0B48DF000A1D61 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 07032B6311ABB9E000463D20 /* CorePlot.xcodeproj */;
+ proxyType = 1;
+ remoteGlobalIDString = 8DC2EF4F0486A6940098B216;
+ remoteInfo = "CorePlot Mac";
+ };
+ C371E4D01BB714EC00AC18DB /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 07032B6311ABB9E000463D20 /* CorePlot.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = C38A09781A46185200D45436;
+ remoteInfo = "CorePlot iOS";
+ };
+ C371E4D21BB714EC00AC18DB /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 07032B6311ABB9E000463D20 /* CorePlot.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = C38A09821A46185300D45436;
+ remoteInfo = "UnitTests iOS";
+ };
+ C371E4D41BB714EC00AC18DB /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 07032B6311ABB9E000463D20 /* CorePlot.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = C38A09BA1A4619A900D45436;
+ remoteInfo = "CorePlot-CocoaTouch";
+ };
+ C371E4D61BB714EC00AC18DB /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 07032B6311ABB9E000463D20 /* CorePlot.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = C38A09C41A4619A900D45436;
+ remoteInfo = "CorePlot-CocoaTouchTests";
+ };
+ C3CBFB691BE5874200519EE8 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 07032B6311ABB9E000463D20 /* CorePlot.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = C37EA6921BC83F2A0091C8F7;
+ remoteInfo = "CorePlot tvOS";
+ };
+ C3CBFB6B1BE5874200519EE8 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 07032B6311ABB9E000463D20 /* CorePlot.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = C37EA6B71BC83F2D0091C8F7;
+ remoteInfo = "UnitTests tvOS";
+ };
/* End PBXContainerItemProxy section */
/* Begin PBXCopyFilesBuildPhase section */
@@ -57,7 +105,7 @@
dstPath = "";
dstSubfolderSpec = 10;
files = (
- 07032B7111ABB9F300463D20 /* CorePlot.framework in Copy Frameworks */,
+ C36912D31C0B48DF000A1D61 /* CorePlot.framework in Copy Frameworks */,
);
name = "Copy Frameworks";
runOnlyForDeploymentPostprocessing = 0;
@@ -69,30 +117,29 @@
0761854B0F3CB3CB00A89A76 /* CorePlot.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = CorePlot.framework; path = ../../../../framework/build/Debug/CorePlot.framework; sourceTree = BUILT_PRODUCTS_DIR; };
077382AF0F3DC1FB002F10E2 /* Controller.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Controller.h; path = Source/Controller.h; sourceTree = ""; };
077382B00F3DC1FB002F10E2 /* Controller.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Controller.m; path = Source/Controller.m; sourceTree = ""; };
- 07C13BBA0FF9322A00BEE616 /* BlueTexture.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = BlueTexture.png; path = Resources/BlueTexture.png; sourceTree = ""; };
- 089C165DFE840E0CC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; };
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; };
13E42FB307B3F0F600E4EEF1 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = ""; };
29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = Source/main.m; sourceTree = ""; };
29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; };
29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; };
32CA4F630368D1EE00C91783 /* CPTTestApp_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CPTTestApp_Prefix.pch; sourceTree = ""; };
- 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
8D1107320486CEB800E47090 /* CPTTestApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = CPTTestApp.app; sourceTree = BUILT_PRODUCTS_DIR; };
- 90AF4F430F36CF1800753D26 /* CPTTestApp.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = CPTTestApp.xib; path = Resources/CPTTestApp.xib; sourceTree = ""; };
BC8E737C0FC0B3CF00DF8511 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
BC8E74220FC0B96000DF8511 /* RotationView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RotationView.h; path = Source/RotationView.h; sourceTree = "