Revision: 7627
          http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7627&view=rev
Author:   mdehoon
Date:     2009-09-02 00:44:16 +0000 (Wed, 02 Sep 2009)

Log Message:
-----------
Allowing mouse dragging with three-button mice.

Modified Paths:
--------------
    trunk/matplotlib/src/_macosx.m

Modified: trunk/matplotlib/src/_macosx.m
===================================================================
--- trunk/matplotlib/src/_macosx.m      2009-09-01 14:44:50 UTC (rev 7626)
+++ trunk/matplotlib/src/_macosx.m      2009-09-02 00:44:16 UTC (rev 7627)
@@ -349,8 +349,10 @@
 - (void)mouseMoved:(NSEvent*)event;
 - (void)rightMouseDown:(NSEvent*)event;
 - (void)rightMouseUp:(NSEvent*)event;
+- (void)rightMouseDragged:(NSEvent*)event;
 - (void)otherMouseDown:(NSEvent*)event;
 - (void)otherMouseUp:(NSEvent*)event;
+- (void)otherMouseDragged:(NSEvent*)event;
 - (void)setRubberband:(NSRect)rect;
 - (void)removeRubberband;
 - (const char*)convertKeyEvent:(NSEvent*)event;
@@ -4744,6 +4746,23 @@
     PyGILState_Release(gstate);
 }
 
+- (void)rightMouseDragged:(NSEvent *)event
+{
+    int x, y;
+    NSPoint location = [event locationInWindow];
+    location = [self convertPoint: location fromView: nil];
+    x = location.x;
+    y = location.y;
+    PyGILState_STATE gstate = PyGILState_Ensure();
+    PyObject* result = PyObject_CallMethod(canvas, "motion_notify_event", 
"ii", x, y);
+    if(result)
+        Py_DECREF(result);
+    else
+        PyErr_Print();
+
+    PyGILState_Release(gstate);
+}
+
 - (void)otherMouseDown:(NSEvent *)event
 {
     int x, y;
@@ -4784,6 +4803,23 @@
     PyGILState_Release(gstate);
 }
 
+- (void)otherMouseDragged:(NSEvent *)event
+{
+    int x, y;
+    NSPoint location = [event locationInWindow];
+    location = [self convertPoint: location fromView: nil];
+    x = location.x;
+    y = location.y;
+    PyGILState_STATE gstate = PyGILState_Ensure();
+    PyObject* result = PyObject_CallMethod(canvas, "motion_notify_event", 
"ii", x, y);
+    if(result)
+        Py_DECREF(result);
+    else
+        PyErr_Print();
+
+    PyGILState_Release(gstate);
+}
+
 - (void)setRubberband:(NSRect)rect
 {
     if (!NSIsEmptyRect(rubberband)) [self setNeedsDisplayInRect: rubberband];


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins

Reply via email to