     {
         super.nsuiTouchesCancelled(touches, withEvent: event)
         
-        if (_isRotating)
+        processRotationGestureCancelled()
+    }
+    #endif
+    
+    #if os(OSX)
+    public override func mouseDown(theEvent: NSEvent)
+    {
+        // if rotation by touch is enabled
+        if rotationEnabled
+        {
+            stopDeceleration()
+        
+            let location = self.convertPoint(theEvent.locationInWindow, fromView: nil)
+            
+            processRotationGestureBegan(location: location)
+        }
+        
+        if !_isRotating
+        {
+            super.mouseDown(theEvent)
+        }
+    }
+    
+    public override func mouseDragged(theEvent: NSEvent)
+    {
+        if rotationEnabled
+        {
+            let location = self.convertPoint(theEvent.locationInWindow, fromView: nil)
+            
+            processRotationGestureMoved(location: location)
+        }
+        
+        if !_isRotating
+        {
+            super.mouseDragged(theEvent)
+        }
+    }
+    
+    public override func mouseUp(theEvent: NSEvent)
+    {
+        if !_isRotating
+        {
+            super.mouseUp(theEvent)
+        }
+        
+        if rotationEnabled
+        {
+            let location = self.convertPoint(theEvent.locationInWindow, fromView: nil)
+            
+            processRotationGestureEnded(location: location)
+        }
+        
+        if _isRotating
         {
             _isRotating = false
         }
     }
+    #endif
     
     private func resetVelocity()
     {

    /// flag that indicates if rotation is done with two fingers or one.
    /// when the chart is inside a scrollview, you need a two-finger rotation because a one-finger rotation eats up all touch events.
    ///
    /// **default**: false
    public var isRotationWithTwoFingers: Bool
    {

            
            let touchLocation = touch.locationInView(self)
            
            processRotationGestureMoved(location: touchLocation)
        }
        
        if (!_isRotating)
