1#import "_CPTPlainBlackTheme.h"
2
3#import "CPTXYGraph.h"
4#import "CPTColor.h"
5#import "CPTGradient.h"
6#import "CPTFill.h"
7#import "CPTPlotAreaFrame.h"
8#import "CPTXYPlotSpace.h"
9#import "CPTUtilities.h"
10#import "CPTXYAxisSet.h"
11#import "CPTXYAxis.h"
12#import "CPTMutableLineStyle.h"
13#import "CPTMutableTextStyle.h"
14#import "CPTBorderedLayer.h"
15#import "CPTExceptions.h"
16
17NSString * const kCPTPlainBlackTheme = @"Plain Black";	///< Plain black theme.
18
19/** @brief Creates a CPTXYGraph instance formatted with black backgrounds and white lines.
20 **/
21@implementation _CPTPlainBlackTheme
22
23+(void)load
24{
25	[self registerTheme:self];
26}
27
28+(NSString *)name
29{
30	return kCPTPlainBlackTheme;
31}
32
33#pragma mark -
34
35-(void)applyThemeToBackground:(CPTXYGraph *)graph
36{
37    graph.fill = [CPTFill fillWithColor:[CPTColor blackColor]];
38}
39
40-(void)applyThemeToPlotArea:(CPTPlotAreaFrame *)plotAreaFrame
41{
42    plotAreaFrame.fill = [CPTFill fillWithColor:[CPTColor blackColor]];
43
44	CPTMutableLineStyle *borderLineStyle = [CPTMutableLineStyle lineStyle];
45	borderLineStyle.lineColor = [CPTColor whiteColor];
46	borderLineStyle.lineWidth = 1.0;
47
48	plotAreaFrame.borderLineStyle = borderLineStyle;
49	plotAreaFrame.cornerRadius = 0.0;
50}
51
52-(void)applyThemeToAxisSet:(CPTXYAxisSet *)axisSet
53{
54    CPTMutableLineStyle *majorLineStyle = [CPTMutableLineStyle lineStyle];
55    majorLineStyle.lineCap = kCGLineCapRound;
56    majorLineStyle.lineColor = [CPTColor whiteColor];
57    majorLineStyle.lineWidth = 3.0;
58
59    CPTMutableLineStyle *minorLineStyle = [CPTMutableLineStyle lineStyle];
60    minorLineStyle.lineColor = [CPTColor whiteColor];
61    minorLineStyle.lineWidth = 3.0;
62
63    CPTXYAxis *x = axisSet.xAxis;
64	CPTMutableTextStyle *whiteTextStyle = [[[CPTMutableTextStyle alloc] init] autorelease];
65	whiteTextStyle.color = [CPTColor whiteColor];
66	whiteTextStyle.fontSize = 14.0;
67	CPTMutableTextStyle *minorTickWhiteTextStyle = [[[CPTMutableTextStyle alloc] init] autorelease];
68	minorTickWhiteTextStyle.color = [CPTColor whiteColor];
69	minorTickWhiteTextStyle.fontSize = 12.0;
70
71    x.labelingPolicy = CPTAxisLabelingPolicyFixedInterval;
72    x.majorIntervalLength = CPTDecimalFromDouble(0.5);
73    x.orthogonalCoordinateDecimal = CPTDecimalFromDouble(0.0);
74	x.tickDirection = CPTSignNone;
75    x.minorTicksPerInterval = 4;
76    x.majorTickLineStyle = majorLineStyle;
77    x.minorTickLineStyle = minorLineStyle;
78    x.axisLineStyle = majorLineStyle;
79    x.majorTickLength = 7.0;
80    x.minorTickLength = 5.0;
81	x.labelTextStyle = whiteTextStyle;
82	x.minorTickLabelTextStyle = whiteTextStyle;
83	x.titleTextStyle = whiteTextStyle;
84
85    CPTXYAxis *y = axisSet.yAxis;
86    y.labelingPolicy = CPTAxisLabelingPolicyFixedInterval;
87    y.majorIntervalLength = CPTDecimalFromDouble(0.5);
88    y.minorTicksPerInterval = 4;
89    y.orthogonalCoordinateDecimal = CPTDecimalFromDouble(0.0);
90	y.tickDirection = CPTSignNone;
91    y.majorTickLineStyle = majorLineStyle;
92    y.minorTickLineStyle = minorLineStyle;
93    y.axisLineStyle = majorLineStyle;
94    y.majorTickLength = 7.0;
95    y.minorTickLength = 5.0;
96	y.labelTextStyle = whiteTextStyle;
97	y.minorTickLabelTextStyle = minorTickWhiteTextStyle;
98	y.titleTextStyle = whiteTextStyle;
99}
100
101#pragma mark -
102#pragma mark NSCoding methods
103
104-(Class)classForCoder
105{
106	return [CPTTheme class];
107}
108
109@end
110