         let pi = M_PI
         var radian: CGFloat = CGFloat(pi / 2)
         let context = self.currentContext!
-        
+        let lineWidth = Double(CGRectGetWidth(self.bounds) / 4)
+        let lineAttributes = [NSForegroundColorAttributeName: NSColor.whiteColor(), NSFontAttributeName: NSFont.systemFontOfSize(14)]
+        let truncationToken = CTLineCreateWithAttributedString(NSAttributedString(string: "…", attributes: lineAttributes))
+
         for value in values {
             CGContextSetFillColorWithColor(context, value.color.CGColor)
             CGContextMoveToPoint(context, cx, cy)

            if value.ratio >= 0.1 {
                let strx = cx + cos(midRadian) * radius * 0.5
                let stry = cy + sin(midRadian) * radius * 0.5
                let string = NSAttributedString(string: String(format: "%.1f%%", value.ratio * 100),
                    attributes: [NSForegroundColorAttributeName: NSColor.whiteColor(), NSFontAttributeName: NSFont.systemFontOfSize(14)])
                let line = CTLineCreateWithAttributedString(string)
                CGContextSetTextPosition(context, strx - 20, stry)
                CGContextSaveGState(context)
                CGContextSetShadow(context, CGSizeMake(1, 1), 5)
                CTLineDraw(line, context)
                CGContextRestoreGState(context)
            }
        }
    }
}

            return nil
        }
    }

    override func viewDidMoveToWindow() {
        self.window?.becomeKeyWindow()
    }
    
    override func drawRect(dirtyRect: NSRect) {
        let cy = CGRectGetHeight(self.bounds) / 2
