Hi Everyone,

This is my first post, so I'll apologize in advance for any inadvertent lapse in manners.

I'm using matplotlib 0.98.5.2, wxPython version 2.8-msw-unicode, on Windows XP Professional x64 at work (and 32bit at home). At work I have a plain old Dell 2 button mouse with a scroll wheel which you can scroll or click as a middle mouse button. At home I have an equivalent mouse from Logitec. Both mice exhibit useful functionality for the "middle button" in browsers. And I did install the latest Logitec drivers at home and specifically set the scroll click to have the functionality of a middle mouse button.

In all cases, home or work, I failed to detect a middle mouse button press or release event.

I've attached an example program and copied the text below.

If anyone could please check to see if this is happening for them, or has any idea how to fix this, I'd very much appreciate it.

Thanks,

Brian J. Soher
Duke University

-------------------------------------

import wxversion
wxversion.ensureMinimal('2.8')
from numpy import arange, sin, pi
import matplotlib

matplotlib.use('WXAgg')
from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as FigureCanvas
from matplotlib.figure import Figure
import wx

class CanvasFrame(wx.Frame):

    def __init__(self):
        wx.Frame.__init__(self,None,-1,'CanvasFrame',size=(550,350))
        self.SetBackgroundColour(wx.NamedColor("WHITE"))

        self.figure = Figure()
        self.axes = self.figure.add_subplot(111)
        t = arange(0.0,3.0,0.01)
        s = sin(2*pi*t)

        self.axes.plot(t,s)
        self.canvas = FigureCanvas(self, -1, self.figure)

        self.sizer = wx.BoxSizer(wx.VERTICAL)
        self.sizer.Add(self.canvas, 1, wx.LEFT | wx.TOP | wx.GROW)
        self.SetSizer(self.sizer)
        self.Fit()

        self.connect()

    def connect(self):
        'connect to all the events we need'
self.cidpress = self.figure.canvas.mpl_connect('button_press_event', self.on_press) self.cidrelease = self.figure.canvas.mpl_connect('button_release_event', self.on_release) self.cidscroll = self.figure.canvas.mpl_connect('scroll_event', self.on_scroll) self.cidmotion = self.figure.canvas.mpl_connect('motion_notify_event', self.mouseMotion) self.cidkeydown = self.figure.canvas.mpl_connect('key_press_event', self.keyDown) self.cidkeyup = self.figure.canvas.mpl_connect('key_release_event', self.keyUp)

    def on_press(self, evt):
        print ' press evt.button = '+str(evt.button)
        if evt.button == 1:
            self.leftButtonDown(evt)
        elif evt.button == 2:
            self.middleButtonDown(evt)
        elif evt.button == 3:
            self.rightButtonDown(evt)

    def on_release(self, evt):
        if evt.button == 1:
            self.leftButtonUp(evt)
        elif evt.button == 2:
            print 'evt.button == 2'
            self.middleButtonUp(evt)
        elif evt.button == 3:
            self.rightButtonUp(evt)

    def on_scroll(self, evt):
        if evt.button == 'up':
            self.scrollUp(evt)
        elif evt.button == 'down':
            self.scrollDown(evt)

    def keyDown(self, evt):
        print ' keyDown()'

    def keyUp(self, evt):
        print ' keyUp()'

    def scrollDown(self, evt):
        print ' scrollDown()'

    def scrollUp(self, evt):
        print ' scrollUp()'

    def leftButtonDown(self, evt):
        print ' leftButtonDown()'

    def leftButtonUp(self, evt):
        print ' leftButtonUp()'

    def middleButtonDown(self, evt):
        print ' middleButtonDown()'

    def middleButtonUp(self, evt):
        print ' middleButtonUp()'

    def rightButtonDown(self, evt):
        print ' rightButtonDown()'

    def rightButtonUp(self, evt):
        print ' rightButtonUp()'

    def mouseMotion(self, evt):
        print ' mouseMotion()'

    def OnPaint(self, event):
        self.canvas.draw()


class App(wx.App):

    def OnInit(self):
        'Create the main window and insert the custom frame'
        frame = CanvasFrame()
        frame.Show(True)

        return True

app = App(0)
app.MainLoop()
import wxversion
wxversion.ensureMinimal('2.8')
from numpy import arange, sin, pi
import matplotlib

matplotlib.use('WXAgg')
from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as FigureCanvas
from matplotlib.figure import Figure
import wx

class CanvasFrame(wx.Frame):

    def __init__(self):
        wx.Frame.__init__(self,None,-1,'CanvasFrame',size=(550,350))
        self.SetBackgroundColour(wx.NamedColor("WHITE"))

        self.figure = Figure()
        self.axes = self.figure.add_subplot(111)
        t = arange(0.0,3.0,0.01)
        s = sin(2*pi*t)

        self.axes.plot(t,s)
        self.canvas = FigureCanvas(self, -1, self.figure)

        self.sizer = wx.BoxSizer(wx.VERTICAL)
        self.sizer.Add(self.canvas, 1, wx.LEFT | wx.TOP | wx.GROW)
        self.SetSizer(self.sizer)
        self.Fit()

        self.connect()

    def connect(self):
        'connect to all the events we need'
        self.cidpress   = self.figure.canvas.mpl_connect('button_press_event',  
 self.on_press)
        self.cidrelease = 
self.figure.canvas.mpl_connect('button_release_event', self.on_release)
        self.cidscroll  = self.figure.canvas.mpl_connect('scroll_event',        
 self.on_scroll)
        self.cidmotion  = self.figure.canvas.mpl_connect('motion_notify_event', 
 self.mouseMotion)
        self.cidkeydown = self.figure.canvas.mpl_connect('key_press_event',     
 self.keyDown)
        self.cidkeyup   = self.figure.canvas.mpl_connect('key_release_event',   
 self.keyUp)

    def on_press(self, evt):
        print ' press evt.button = '+str(evt.button)
        if evt.button == 1:
            self.leftButtonDown(evt)
        elif evt.button == 2:
            self.middleButtonDown(evt)
        elif evt.button == 3:
            self.rightButtonDown(evt)
        
    def on_release(self, evt):
        if evt.button == 1:
            self.leftButtonUp(evt)
        elif evt.button == 2:
            print 'evt.button == 2'
            self.middleButtonUp(evt)
        elif evt.button == 3:
            self.rightButtonUp(evt)

    def on_scroll(self, evt):
        if evt.button == 'up':
            self.scrollUp(evt)
        elif evt.button == 'down':
            self.scrollDown(evt)    

    def keyDown(self, evt):
        print ' keyDown()'

    def keyUp(self, evt):
        print ' keyUp()'
        
    def scrollDown(self, evt):
        print ' scrollDown()'

    def scrollUp(self, evt):
        print ' scrollUp()'

    def leftButtonDown(self, evt):
        print ' leftButtonDown()'

    def leftButtonUp(self, evt):
        print ' leftButtonUp()'

    def middleButtonDown(self, evt):
        print ' middleButtonDown()'

    def middleButtonUp(self, evt):
        print ' middleButtonUp()'

    def rightButtonDown(self, evt):
        print ' rightButtonDown()'

    def rightButtonUp(self, evt):
        print ' rightButtonUp()'

    def mouseMotion(self, evt):
        print ' mouseMotion()'

    def OnPaint(self, event):
        self.canvas.draw()


class App(wx.App):

    def OnInit(self):
        'Create the main window and insert the custom frame'
        frame = CanvasFrame()
        frame.Show(True)

        return True

app = App(0)
app.MainLoop()
------------------------------------------------------------------------------
Beautiful is writing same markup. Internet Explorer 9 supports
standards for HTML5, CSS3, SVG 1.1,  ECMAScript5, and DOM L2 & L3.
Spend less time writing and  rewriting code and more time creating great
experiences on the web. Be a part of the beta today.
http://p.sf.net/sfu/beautyoftheweb
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to