code: def on_mouse_event(self, event):
          '''handle mouse events'''
          pos = event.GetPosition()
          if event.RightDown() and self.popup_menu is not None:
              self.show_popup_menu(pos)
              return
          if event.Leaving():
              self.mouse_pos = None
          else:
              self.mouse_pos = pos
  
          if event.LeftDown():
              self.mouse_down = self.image_coordinates(pos)
          if event.Dragging() and event.ButtonIsDown(wx.MOUSE_BTN_LEFT):
              self.on_drag_event(eventf on_mouse_event(self, event):
          '''handle mouse events'''
          pos = event.GetPosition()
          if event.RightDown() and self.popup_menu is not None:
              self.show_popup_menu(pos)
              return
          if event.Leaving():
              self.mouse_pos = None
          else:
              self.mouse_pos = pos
  
          if event.LeftDown():
              self.mouse_down = self.image_coordinates(pos)
          if event.Dragging() and event.ButtonIsDown(wx.MOUSE_BTN_LEFT):
              self.on_drag_event(event)
docs: handle mouse events