'Backend derived classes should call this function on any
scroll wheel event.  x,y are the canvas coords: 0,0 is lower,
left.  button and key are as defined in MouseEvent.
This method will be call all functions connected to the
\'scroll_event\' with a :class:`MouseEvent` instance.'

def scroll_event(self, x, y, step, guiEvent=None):

    if (step >= 0):
        self._button = u'up'
    else:
        self._button = u'down'
    s = u'scroll_event'
    mouseevent = MouseEvent(s, self, x, y, self._button, self._key, step=step, guiEvent=guiEvent)
    self.callbacks.process(s, mouseevent)
