mirror of
https://github.com/wxWidgets/Phoenix.git
synced 2025-12-16 01:30:07 +01:00
Shuffle some FloatCanvas code around a little to avoid a circular import problem.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxPython/Phoenix/trunk@75719 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
53
wx/lib/floatcanvas/FCEvents.py
Normal file
53
wx/lib/floatcanvas/FCEvents.py
Normal file
@@ -0,0 +1,53 @@
|
||||
#!/usr/bin/env python
|
||||
#----------------------------------------------------------------------------
|
||||
# Name: FCEvents.py
|
||||
# Purpose: A convenient place to put all event types and binders for
|
||||
# FloatCanvas, and to help avoid circular imports.
|
||||
#
|
||||
# Author:
|
||||
#
|
||||
# Created:
|
||||
# Version:
|
||||
# Date:
|
||||
# Licence:
|
||||
# Tags: phoenix-port
|
||||
#----------------------------------------------------------------------------
|
||||
"""
|
||||
"""
|
||||
|
||||
import wx
|
||||
|
||||
|
||||
## Create all the mouse events -- this is for binding to Objects
|
||||
EVT_FC_ENTER_WINDOW = wx.NewEventType()
|
||||
EVT_FC_LEAVE_WINDOW = wx.NewEventType()
|
||||
EVT_FC_LEFT_DOWN = wx.NewEventType()
|
||||
EVT_FC_LEFT_UP = wx.NewEventType()
|
||||
EVT_FC_LEFT_DCLICK = wx.NewEventType()
|
||||
EVT_FC_MIDDLE_DOWN = wx.NewEventType()
|
||||
EVT_FC_MIDDLE_UP = wx.NewEventType()
|
||||
EVT_FC_MIDDLE_DCLICK = wx.NewEventType()
|
||||
EVT_FC_RIGHT_DOWN = wx.NewEventType()
|
||||
EVT_FC_RIGHT_UP = wx.NewEventType()
|
||||
EVT_FC_RIGHT_DCLICK = wx.NewEventType()
|
||||
EVT_FC_MOTION = wx.NewEventType()
|
||||
EVT_FC_MOUSEWHEEL = wx.NewEventType()
|
||||
## these two are for the hit-test stuff, I never make them real Events
|
||||
## fixme: could I use the PyEventBinder for the Object events too?
|
||||
EVT_FC_ENTER_OBJECT = wx.NewEventType()
|
||||
EVT_FC_LEAVE_OBJECT = wx.NewEventType()
|
||||
|
||||
##Create all mouse event binding objects -- for binding to the Canvas
|
||||
EVT_LEFT_DOWN = wx.PyEventBinder(EVT_FC_LEFT_DOWN)
|
||||
EVT_LEFT_UP = wx.PyEventBinder(EVT_FC_LEFT_UP)
|
||||
EVT_LEFT_DCLICK = wx.PyEventBinder(EVT_FC_LEFT_DCLICK)
|
||||
EVT_MIDDLE_DOWN = wx.PyEventBinder(EVT_FC_MIDDLE_DOWN)
|
||||
EVT_MIDDLE_UP = wx.PyEventBinder(EVT_FC_MIDDLE_UP)
|
||||
EVT_MIDDLE_DCLICK = wx.PyEventBinder(EVT_FC_MIDDLE_DCLICK)
|
||||
EVT_RIGHT_DOWN = wx.PyEventBinder(EVT_FC_RIGHT_DOWN)
|
||||
EVT_RIGHT_UP = wx.PyEventBinder(EVT_FC_RIGHT_UP)
|
||||
EVT_RIGHT_DCLICK = wx.PyEventBinder(EVT_FC_RIGHT_DCLICK)
|
||||
EVT_MOTION = wx.PyEventBinder(EVT_FC_MOTION)
|
||||
EVT_ENTER_WINDOW = wx.PyEventBinder(EVT_FC_ENTER_WINDOW)
|
||||
EVT_LEAVE_WINDOW = wx.PyEventBinder(EVT_FC_LEAVE_WINDOW)
|
||||
EVT_MOUSEWHEEL = wx.PyEventBinder(EVT_FC_MOUSEWHEEL)
|
||||
@@ -67,39 +67,8 @@ class FloatCanvasError(Exception):
|
||||
"""Custom FloatCanvas exception."""
|
||||
pass
|
||||
|
||||
## Create all the mouse events -- this is for binding to Objects
|
||||
EVT_FC_ENTER_WINDOW = wx.NewEventType()
|
||||
EVT_FC_LEAVE_WINDOW = wx.NewEventType()
|
||||
EVT_FC_LEFT_DOWN = wx.NewEventType()
|
||||
EVT_FC_LEFT_UP = wx.NewEventType()
|
||||
EVT_FC_LEFT_DCLICK = wx.NewEventType()
|
||||
EVT_FC_MIDDLE_DOWN = wx.NewEventType()
|
||||
EVT_FC_MIDDLE_UP = wx.NewEventType()
|
||||
EVT_FC_MIDDLE_DCLICK = wx.NewEventType()
|
||||
EVT_FC_RIGHT_DOWN = wx.NewEventType()
|
||||
EVT_FC_RIGHT_UP = wx.NewEventType()
|
||||
EVT_FC_RIGHT_DCLICK = wx.NewEventType()
|
||||
EVT_FC_MOTION = wx.NewEventType()
|
||||
EVT_FC_MOUSEWHEEL = wx.NewEventType()
|
||||
## these two are for the hit-test stuff, I never make them real Events
|
||||
## fixme: could I use the PyEventBinder for the Object events too?
|
||||
EVT_FC_ENTER_OBJECT = wx.NewEventType()
|
||||
EVT_FC_LEAVE_OBJECT = wx.NewEventType()
|
||||
|
||||
##Create all mouse event binding objects -- for binding to the Canvas
|
||||
EVT_LEFT_DOWN = wx.PyEventBinder(EVT_FC_LEFT_DOWN)
|
||||
EVT_LEFT_UP = wx.PyEventBinder(EVT_FC_LEFT_UP)
|
||||
EVT_LEFT_DCLICK = wx.PyEventBinder(EVT_FC_LEFT_DCLICK)
|
||||
EVT_MIDDLE_DOWN = wx.PyEventBinder(EVT_FC_MIDDLE_DOWN)
|
||||
EVT_MIDDLE_UP = wx.PyEventBinder(EVT_FC_MIDDLE_UP)
|
||||
EVT_MIDDLE_DCLICK = wx.PyEventBinder(EVT_FC_MIDDLE_DCLICK)
|
||||
EVT_RIGHT_DOWN = wx.PyEventBinder(EVT_FC_RIGHT_DOWN)
|
||||
EVT_RIGHT_UP = wx.PyEventBinder(EVT_FC_RIGHT_UP)
|
||||
EVT_RIGHT_DCLICK = wx.PyEventBinder(EVT_FC_RIGHT_DCLICK)
|
||||
EVT_MOTION = wx.PyEventBinder(EVT_FC_MOTION)
|
||||
EVT_ENTER_WINDOW = wx.PyEventBinder(EVT_FC_ENTER_WINDOW)
|
||||
EVT_LEAVE_WINDOW = wx.PyEventBinder(EVT_FC_LEAVE_WINDOW)
|
||||
EVT_MOUSEWHEEL = wx.PyEventBinder(EVT_FC_MOUSEWHEEL)
|
||||
## Import all EVT_* event types and event binders
|
||||
from .FCEvents import *
|
||||
|
||||
|
||||
class _MouseEvent(wx.PyCommandEvent):
|
||||
|
||||
@@ -23,12 +23,11 @@ version of the code.
|
||||
"""
|
||||
|
||||
import wx
|
||||
## fixme: events should live in their own module, so all of FloatCanvas
|
||||
## wouldn't have to be imported here.
|
||||
from . import FloatCanvas, Resources
|
||||
from .Utilities import BBox
|
||||
import numpy as N
|
||||
|
||||
from . import FCEvents, Resources
|
||||
from .Utilities import BBox
|
||||
|
||||
class Cursors(object):
|
||||
"""
|
||||
Class to hold the standard Cursors
|
||||
@@ -134,58 +133,58 @@ class GUIMouse(GUIBase):
|
||||
|
||||
# Handlers
|
||||
def OnLeftDown(self, event):
|
||||
EventType = FloatCanvas.EVT_FC_LEFT_DOWN
|
||||
EventType = FCEvents.EVT_FC_LEFT_DOWN
|
||||
if not self.Canvas.HitTest(event, EventType):
|
||||
self.Canvas._RaiseMouseEvent(event, EventType)
|
||||
|
||||
def OnLeftUp(self, event):
|
||||
EventType = FloatCanvas.EVT_FC_LEFT_UP
|
||||
EventType = FCEvents.EVT_FC_LEFT_UP
|
||||
if not self.Canvas.HitTest(event, EventType):
|
||||
self.Canvas._RaiseMouseEvent(event, EventType)
|
||||
|
||||
def OnLeftDouble(self, event):
|
||||
EventType = FloatCanvas.EVT_FC_LEFT_DCLICK
|
||||
EventType = FCEvents.EVT_FC_LEFT_DCLICK
|
||||
if not self.Canvas.HitTest(event, EventType):
|
||||
self.Canvas._RaiseMouseEvent(event, EventType)
|
||||
|
||||
def OnMiddleDown(self, event):
|
||||
EventType = FloatCanvas.EVT_FC_MIDDLE_DOWN
|
||||
EventType = FCEvents.EVT_FC_MIDDLE_DOWN
|
||||
if not self.Canvas.HitTest(event, EventType):
|
||||
self.Canvas._RaiseMouseEvent(event, EventType)
|
||||
|
||||
def OnMiddleUp(self, event):
|
||||
EventType = FloatCanvas.EVT_FC_MIDDLE_UP
|
||||
EventType = FCEvents.EVT_FC_MIDDLE_UP
|
||||
if not self.Canvas.HitTest(event, EventType):
|
||||
self.Canvas._RaiseMouseEvent(event, EventType)
|
||||
|
||||
def OnMiddleDouble(self, event):
|
||||
EventType = FloatCanvas.EVT_FC_MIDDLE_DCLICK
|
||||
EventType = FCEvents.EVT_FC_MIDDLE_DCLICK
|
||||
if not self.Canvas.HitTest(event, EventType):
|
||||
self.Canvas._RaiseMouseEvent(event, EventType)
|
||||
|
||||
def OnRightDown(self, event):
|
||||
EventType = FloatCanvas.EVT_FC_RIGHT_DOWN
|
||||
EventType = FCEvents.EVT_FC_RIGHT_DOWN
|
||||
if not self.Canvas.HitTest(event, EventType):
|
||||
self.Canvas._RaiseMouseEvent(event, EventType)
|
||||
|
||||
def OnRightUp(self, event):
|
||||
EventType = FloatCanvas.EVT_FC_RIGHT_UP
|
||||
EventType = FCEvents.EVT_FC_RIGHT_UP
|
||||
if not self.Canvas.HitTest(event, EventType):
|
||||
self.Canvas._RaiseMouseEvent(event, EventType)
|
||||
|
||||
def OnRightDouble(self, event):
|
||||
EventType = FloatCanvas.EVT_FC_RIGHT_DCLICK
|
||||
EventType = FCEvents.EVT_FC_RIGHT_DCLICK
|
||||
if not self.Canvas.HitTest(event, EventType):
|
||||
self.Canvas._RaiseMouseEvent(event, EventType)
|
||||
|
||||
def OnWheel(self, event):
|
||||
EventType = FloatCanvas.EVT_FC_MOUSEWHEEL
|
||||
EventType = FCEvents.EVT_FC_MOUSEWHEEL
|
||||
self.Canvas._RaiseMouseEvent(event, EventType)
|
||||
|
||||
def OnMove(self, event):
|
||||
## The Move event always gets raised, even if there is a hit-test
|
||||
self.Canvas.MouseOverTest(event)
|
||||
self.Canvas._RaiseMouseEvent(event,FloatCanvas.EVT_FC_MOTION)
|
||||
self.Canvas._RaiseMouseEvent(event,FCEvents.EVT_FC_MOTION)
|
||||
|
||||
|
||||
class GUIMove(GUIBase):
|
||||
@@ -220,7 +219,7 @@ class GUIMove(GUIBase):
|
||||
|
||||
def OnMove(self, event):
|
||||
# Always raise the Move event.
|
||||
self.Canvas._RaiseMouseEvent(event, FloatCanvas.EVT_FC_MOTION)
|
||||
self.Canvas._RaiseMouseEvent(event, FCEvents.EVT_FC_MOTION)
|
||||
if event.Dragging() and event.LeftIsDown() and not self.StartMove is None:
|
||||
self.EndMove = N.array(event.GetPosition())
|
||||
self.MoveImage(event)
|
||||
@@ -337,7 +336,7 @@ class GUIZoomIn(GUIBase):
|
||||
|
||||
def OnMove(self, event):
|
||||
# Always raise the Move event.
|
||||
self.Canvas._RaiseMouseEvent(event,FloatCanvas.EVT_FC_MOTION)
|
||||
self.Canvas._RaiseMouseEvent(event,FCEvents.EVT_FC_MOTION)
|
||||
if event.Dragging() and event.LeftIsDown() and not (self.StartRBBox is None):
|
||||
xy0 = self.StartRBBox
|
||||
xy1 = N.array( event.GetPosition() )
|
||||
@@ -399,5 +398,5 @@ class GUIZoomOut(GUIBase):
|
||||
|
||||
def OnMove(self, event):
|
||||
# Always raise the Move event.
|
||||
self.Canvas._RaiseMouseEvent(event,FloatCanvas.EVT_FC_MOTION)
|
||||
self.Canvas._RaiseMouseEvent(event,FCEvents.EVT_FC_MOTION)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user