     // #################
     
     /// Whether or not to show the labels on the x-axis for each point.
-    public var shouldShowLabels = true
+    @IBInspectable public var shouldShowLabels: Bool = true
     /// How far from the "minimum" reference line the data point labels should be rendered.
-    public var dataPointLabelTopMargin: CGFloat = 10
+    @IBInspectable public var dataPointLabelTopMargin: CGFloat = 10
     /// How far from the bottom of the view the data point labels should be rendered.
     public var dataPointLabelBottomMargin: CGFloat = 0
     /// The font for the data point labels.
-    public var dataPointLabelColor = UIColor.blackColor()
+    @IBInspectable public var dataPointLabelColor: UIColor = UIColor.blackColor()
     /// The colour for the data point labels.
     public var dataPointLabelFont: UIFont? = UIFont.systemFontOfSize(10)
     /// Used to force the graph to show every n-th dataPoint label

    // ###########
    
    /// If this is set to true, then the range will automatically be detected from the data the graph is given.
    public var shouldAutomaticallyDetectRange = false
    /// Forces the graph's minimum to always be zero. Used in conjunction with shouldAutomaticallyDetectRange or shouldAdaptRange, if you want to force the minimum to stay at 0 rather than the detected minimum.
    public var shouldRangeAlwaysStartAtZero = false // Used in conjunction with shouldAutomaticallyDetectRange, if you want to force the min to stay at 0.
    /// The minimum value for the y-axis. This is ignored when shouldAutomaticallyDetectRange or shouldAdaptRange = true
    public var rangeMin: Double = 0
    /// The maximum value for the y-axis. This is ignored when shouldAutomaticallyDetectRange or shouldAdaptRange = true
    public var rangeMax: Double = 100
    
    // Data Point Drawing
    // ##################
    
    /// Whether or not to draw a symbol for each data point.
    public var shouldDrawDataPoint = true
    /// The shape to draw for each data point.
    public var dataPointType = ScrollableGraphViewDataPointType.Circle
    /// The size of the shape to draw for each data point.
    public var dataPointSize: CGFloat = 5
    /// The colour with which to fill the shape.
    public var dataPointFillColor: UIColor = UIColor.blackColor()
    /// If dataPointType is set to .Custom then you,can provide a closure to create any kind of shape you would like to be displayed instead of just a circle or square. The closure takes a CGPoint which is the centre of the shape and it should return a complete UIBezierPath.
    public var customDataPointPath: ((centre: CGPoint) -> UIBezierPath)?
    

    // ###########
    
    /// Specifies how thick the graph of the line is. In points.
    @IBInspectable public var lineWidth: CGFloat = 2
    /// The color of the graph line. UIColor.
    // We must not use type inferring here or else the property won't show up in IB
    @IBInspectable public var lineColor: UIColor = UIColor.blackColor()
    
    @IBInspectable var lineStyle_: Int {
        get { return lineStyle.rawValue }
        set {
            if let enumValue = ScrollableGraphViewLineStyle(rawValue: newValue) {
                lineStyle = enumValue
            }
        }
    }
    /// Whether or not the line should be rendered using bezier curves are straight lines.
    public var lineStyle = ScrollableGraphViewLineStyle.Straight
    /// How each segment in the line should connect. Takes any of the Core Animation LineJoin values.
    public var lineJoin = kCALineJoinRound
    /// The line caps. Takes any of the Core Animation LineCap values.
    public var lineCap = kCALineCapRound
    @IBInspectable public var lineCurviness: CGFloat = 0.5
    
    // Bar styles
    // ##########
    
    /// Whether bars should be drawn or not. If you want a bar graph, this should be set to true.
    @IBInspectable public var shouldDrawBarLayer: Bool = false
    /// The width of an individual bar on the graph.
    @IBInspectable public var barWidth: CGFloat = 25;
    /// The actual colour of the bar.
    @IBInspectable public var barColor: UIColor = UIColor.grayColor()
    /// The width of the outline of the bar
    @IBInspectable public var barLineWidth: CGFloat = 1
    /// The colour of the bar outline
    @IBInspectable public var barLineColor: UIColor = UIColor.darkGrayColor()
    
    // Fill Styles
    // ###########
    
    /// The background colour for the entire graph view, not just the plotted graph.
    @IBInspectable public var backgroundFillColor: UIColor = UIColor.whiteColor()
    
    /// Specifies whether or not the plotted graph should be filled with a colour or gradient.
    @IBInspectable public var shouldFill: Bool = false
    
    @IBInspectable var fillType_: Int {
        get { return fillType.rawValue }
        set {
            if let enumValue = ScrollableGraphViewFillType(rawValue: newValue) {
                fillType = enumValue
            }
        }
    }
    /// Specifies whether to fill the graph with a solid colour or gradient.
    public var fillType = ScrollableGraphViewFillType.Solid
    /// If fillType is set to .Solid then this colour will be used to fill the graph.
    @IBInspectable public var fillColor: UIColor = UIColor.blackColor()
    /// If fillType is set to .Gradient then this will be the starting colour for the gradient.
    @IBInspectable public var fillGradientStartColor: UIColor = UIColor.whiteColor()
    /// If fillType is set to .Gradient, then this will be the ending colour for the gradient.
    @IBInspectable public var fillGradientEndColor: UIColor = UIColor.blackColor()
    /// If fillType is set to .Gradient, then this defines whether the gradient is rendered as a linear gradient or radial gradient.
    public var fillGradientType = ScrollableGraphViewGradientType.Linear
    
