示例#1
0
class MouseWheelTestCase(TestCase):

    def setUp(self):
        import wx

        # set up Enable components and tools
        self.container = Container(postion=[0, 0], bounds=[600, 600])
        self.tool = MouseEventTool(component=self.container)
        self.container.tools.append(self.tool)

        # set up wx components and tools
        self.parent = wx.Frame(None, size=(600, 600))
        self.window = Window(
            self.parent,
            size=(600, 600),
            component=self.container
        )

        # Hack: event processing code skips if window not actually shown by
        # testing for value of _size
        self.window._size = (600, 600)

    def test_vertical_mouse_wheel(self):
        import wx

        # create and mock a mouse wheel event
        wx_event = wx.MouseEvent(mouseType=wx.wxEVT_MOUSEWHEEL)
        wx_event.GetWheelRotation = MagicMock(return_value=200)
        wx_event.GetWheelAxis = MagicMock(return_value=wx.MOUSE_WHEEL_VERTICAL)
        wx_event.GetLinesPerAction = MagicMock(return_value=1)
        wx_event.GetWheelDelta = MagicMock(return_value=120)

        # dispatch event
        self.window._on_mouse_wheel(wx_event)

        # validate results
        self.assertEqual(self.tool.event.mouse_wheel_axis, 'vertical')
        self.assertAlmostEqual(self.tool.event.mouse_wheel, 5.0/3.0)
        self.assertEqual(self.tool.event.mouse_wheel_delta, (0, 200))

    def test_horizontal_mouse_wheel(self):
        import wx

        # create and mock a mouse wheel event
        wx_event = wx.MouseEvent(mouseType=wx.wxEVT_MOUSEWHEEL)
        wx_event.GetWheelRotation = MagicMock(return_value=200)
        wx_event.GetWheelAxis = MagicMock(
            return_value=wx.MOUSE_WHEEL_HORIZONTAL)
        wx_event.GetLinesPerAction = MagicMock(return_value=1)
        wx_event.GetWheelDelta = MagicMock(return_value=120)

        # dispatch event
        self.window._handle_mouse_event('mouse_wheel', wx_event)

        # validate results
        self.assertEqual(self.tool.event.mouse_wheel_axis, 'horizontal')
        self.assertAlmostEqual(self.tool.event.mouse_wheel, 5.0/3.0)
        self.assertEqual(self.tool.event.mouse_wheel_delta, (200, 0))
示例#2
0
class MouseWheelTestCase(TestCase):
    def setUp(self):
        import wx

        # set up Enable components and tools
        self.container = Container(postion=[0, 0], bounds=[600, 600])
        self.tool = MouseEventTool(component=self.container)
        self.container.tools.append(self.tool)

        # set up wx components and tools
        self.parent = wx.Frame(None, size=(600, 600))
        self.window = Window(self.parent,
                             size=(600, 600),
                             component=self.container)

        # Hack: event processing code skips if window not actually shown by
        # testing for value of _size
        self.window._size = (600, 600)

    def test_vertical_mouse_wheel(self):
        import wx

        # create and mock a mouse wheel event
        wx_event = wx.MouseEvent(mouseType=wx.wxEVT_MOUSEWHEEL)
        wx_event.GetWheelRotation = MagicMock(return_value=200)
        wx_event.GetWheelAxis = MagicMock(return_value=wx.MOUSE_WHEEL_VERTICAL)
        wx_event.GetLinesPerAction = MagicMock(return_value=1)
        wx_event.GetWheelDelta = MagicMock(return_value=120)

        # dispatch event
        self.window._on_mouse_wheel(wx_event)

        # validate results
        self.assertEqual(self.tool.event.mouse_wheel_axis, 'vertical')
        self.assertAlmostEqual(self.tool.event.mouse_wheel, 5.0 / 3.0)
        self.assertEqual(self.tool.event.mouse_wheel_delta, (0, 200))

    def test_horizontal_mouse_wheel(self):
        import wx

        # create and mock a mouse wheel event
        wx_event = wx.MouseEvent(mouseType=wx.wxEVT_MOUSEWHEEL)
        wx_event.GetWheelRotation = MagicMock(return_value=200)
        wx_event.GetWheelAxis = MagicMock(
            return_value=wx.MOUSE_WHEEL_HORIZONTAL)
        wx_event.GetLinesPerAction = MagicMock(return_value=1)
        wx_event.GetWheelDelta = MagicMock(return_value=120)

        # dispatch event
        self.window._handle_mouse_event('mouse_wheel', wx_event)

        # validate results
        self.assertEqual(self.tool.event.mouse_wheel_axis, 'horizontal')
        self.assertAlmostEqual(self.tool.event.mouse_wheel, 5.0 / 3.0)
        self.assertEqual(self.tool.event.mouse_wheel_delta, (200, 0))
示例#3
0
class MouseWheelTestCase(TestCase):
    def setUp(self):
        import wx

        # set up Enable components and tools
        self.container = Container(postion=[0, 0], bounds=[600, 600])
        self.tool = MouseEventTool(component=self.container)
        self.container.tools.append(self.tool)

        # set up wx components and tools
        self.parent = wx.Frame(None, size=(600, 600))
        self.window = Window(
            self.parent, size=(600, 600), component=self.container
        )

        # Hack: event processing code skips if window not actually shown by
        # testing for value of _size
        self.window._size = (600, 600)

    def test_vertical_mouse_wheel(self):
        import wx

        # create and mock a mouse wheel event
        wx_event = wx.MouseEvent(wx.wxEVT_MOUSEWHEEL)
        wx_event.GetWheelRotation = MagicMock(return_value=200)
        wx_event.GetWheelAxis = MagicMock(return_value=wx.MOUSE_WHEEL_VERTICAL)
        wx_event.GetLinesPerAction = MagicMock(return_value=1)
        wx_event.GetWheelDelta = MagicMock(return_value=120)

        # dispatch event
        self.window._on_mouse_wheel(wx_event)

        # validate results
        self.assertEqual(self.tool.event.mouse_wheel_axis, "vertical")
        self.assertAlmostEqual(self.tool.event.mouse_wheel, 5.0 / 3.0)

        # "Expected failure" here
        # The expected value is probably wrong.
        # When the test was written, the expected value was (0, 200)
        # (0, 200) would match Qt test (enthought/enable#458)
        self.assertEqual(self.tool.event.mouse_wheel_delta, (0, 1.0))

    def test_horizontal_mouse_wheel(self):
        import wx

        # create and mock a mouse wheel event
        wx_event = wx.MouseEvent(wx.wxEVT_MOUSEWHEEL)
        wx_event.GetWheelRotation = MagicMock(return_value=200)
        wx_event.GetWheelAxis = MagicMock(
            return_value=wx.MOUSE_WHEEL_HORIZONTAL
        )
        wx_event.GetLinesPerAction = MagicMock(return_value=1)
        wx_event.GetWheelDelta = MagicMock(return_value=120)

        # dispatch event
        self.window._handle_mouse_event("mouse_wheel", wx_event)

        # validate results
        self.assertEqual(self.tool.event.mouse_wheel_axis, "horizontal")
        self.assertAlmostEqual(self.tool.event.mouse_wheel, 5.0 / 3.0)

        # "Expected failure" here
        # The expected value is probably wrong.
        # When the test was written, the expected value was (200, 0)
        # (200, 0) would match Qt test (enthought/enable#458)
        self.assertEqual(self.tool.event.mouse_wheel_delta, (1.0, 0))
示例#4
0
class MouseWheelTestCase(TestCase):
    def setUp(self):

        # set up Enable components and tools
        self.container = Container(postion=[0, 0], bounds=[600, 600])
        self.tool = MouseEventTool(component=self.container)
        self.container.tools.append(self.tool)

        # set up qt components
        self.window = Window(None, size=(600, 600), component=self.container)

        # Hack: event processing code skips if window not actually shown by
        # testing for value of _size
        self.window._size = (600, 600)

    def test_vertical_mouse_wheel(self):
        from pyface.qt import QtCore, QtGui

        is_qt4 = (QtCore.__version_info__[0] <= 4)

        # create and mock a mouse wheel event
        if is_qt4:
            qt_event = QtGui.QWheelEvent(QtCore.QPoint(0, 0), 200,
                                         QtCore.Qt.NoButton,
                                         QtCore.Qt.NoModifier,
                                         QtCore.Qt.Vertical)
        else:
            qt_event = QtGui.QWheelEvent(
                QtCore.QPointF(0, 0),
                self.window.control.mapToGlobal(QtCore.QPoint(0, 0)),
                QtCore.QPoint(0, 200), QtCore.QPoint(0, 200), 200,
                QtCore.Qt.Vertical, QtCore.Qt.NoButton, QtCore.Qt.NoModifier,
                QtCore.Qt.ScrollUpdate)

        # dispatch event
        self.window._on_mouse_wheel(qt_event)

        # validate results
        self.assertEqual(self.tool.event.mouse_wheel_axis, 'vertical')
        self.assertAlmostEqual(self.tool.event.mouse_wheel, 5.0 / 3.0)
        self.assertEqual(self.tool.event.mouse_wheel_delta, (0, 200))

    def test_horizontal_mouse_wheel(self):
        from pyface.qt import QtCore, QtGui

        is_qt4 = (QtCore.__version_info__[0] <= 4)

        # create and mock a mouse wheel event
        if is_qt4:
            qt_event = QtGui.QWheelEvent(QtCore.QPoint(0, 0), 200,
                                         QtCore.Qt.NoButton,
                                         QtCore.Qt.NoModifier,
                                         QtCore.Qt.Horizontal)
        else:
            qt_event = QtGui.QWheelEvent(
                QtCore.QPoint(0, 0),
                self.window.control.mapToGlobal(QtCore.QPoint(0, 0)),
                QtCore.QPoint(200, 0), QtCore.QPoint(200, 0), 200,
                QtCore.Qt.Vertical, QtCore.Qt.NoButton, QtCore.Qt.NoModifier,
                QtCore.Qt.ScrollUpdate)

        # dispatch event
        self.window._on_mouse_wheel(qt_event)

        # validate results
        self.assertEqual(self.tool.event.mouse_wheel_axis, 'horizontal')
        self.assertAlmostEqual(self.tool.event.mouse_wheel, 5.0 / 3.0)
        self.assertEqual(self.tool.event.mouse_wheel_delta, (200, 0))

    def test_vertical_mouse_wheel_without_pixel_delta(self):
        from pyface.qt import QtCore, QtGui
        is_qt4 = (QtCore.__version_info__[0] <= 4)
        if is_qt4:
            self.skipTest("Not directly applicable in Qt4")

        # create and mock a mouse wheel event
        qt_event = QtGui.QWheelEvent(
            QtCore.QPointF(0, 0),
            self.window.control.mapToGlobal(QtCore.QPoint(0, 0)),
            QtCore.QPoint(0, 0), QtCore.QPoint(0,
                                               200), 200, QtCore.Qt.Vertical,
            QtCore.Qt.NoButton, QtCore.Qt.NoModifier, QtCore.Qt.ScrollUpdate)

        # dispatch event
        self.window._on_mouse_wheel(qt_event)

        # validate results
        self.assertEqual(self.tool.event.mouse_wheel_axis, 'vertical')
        self.assertEqual(self.tool.event.mouse_wheel, 5.0 / 3.0)
        self.assertEqual(self.tool.event.mouse_wheel_delta, (0, 200))
示例#5
0
class MouseWheelTestCase(TestCase):
    def setUp(self):

        # set up Enable components and tools
        self.container = Container(postion=[0, 0], bounds=[600, 600])
        self.tool = MouseEventTool(component=self.container)
        self.container.tools.append(self.tool)

        # set up qt components
        self.window = Window(None, size=(600, 600), component=self.container)

        # Hack: event processing code skips if window not actually shown by
        # testing for value of _size
        self.window._size = (600, 600)

    def test_vertical_mouse_wheel(self):
        from pyface.qt import QtCore, QtGui, is_qt4, is_qt5

        # create and mock a mouse wheel event
        if is_qt4:
            qt_event = QtGui.QWheelEvent(
                QtCore.QPoint(0, 0),  # pos
                200,  # delta
                QtCore.Qt.NoButton,  # buttons
                QtCore.Qt.NoModifier,  # modifiers
                QtCore.Qt.Vertical,  # orient
            )
        elif is_qt5:
            qt_event = QtGui.QWheelEvent(
                QtCore.QPoint(0, 0),  # pos
                self.window.control.mapToGlobal(QtCore.QPoint(0,
                                                              0)),  # globalPos
                QtCore.QPoint(0, 200),  # pixelDelta
                QtCore.QPoint(0, 200),  # angleDelta
                200,  # qt4Delta
                QtCore.Qt.Vertical,  # qt4Orietation
                QtCore.Qt.NoButton,  # buttons
                QtCore.Qt.NoModifier,  # modifiers
                QtCore.Qt.ScrollUpdate,  # phase
            )
        else:
            qt_event = QtGui.QWheelEvent(
                QtCore.QPointF(0, 0),  # pos
                self.window.control.mapToGlobal(QtCore.QPointF(
                    0, 0)),  # globalPos
                QtCore.QPoint(0, 200),  # pixelDelta
                QtCore.QPoint(0, 200),  # angleDelta
                QtCore.Qt.NoButton,  # buttons
                QtCore.Qt.NoModifier,  # modifiers
                QtCore.Qt.ScrollUpdate,  # phase
                False,  # inverted
            )

        # dispatch event
        self.window._on_mouse_wheel(qt_event)

        # validate results
        self.assertEqual(self.tool.event.mouse_wheel_axis, "vertical")
        self.assertAlmostEqual(self.tool.event.mouse_wheel, 5.0 / 3.0)
        self.assertEqual(self.tool.event.mouse_wheel_delta, (0, 200))

    def test_horizontal_mouse_wheel(self):
        from pyface.qt import QtCore, QtGui, is_qt4, is_qt5

        # create and mock a mouse wheel event
        if is_qt4:
            qt_event = QtGui.QWheelEvent(
                QtCore.QPoint(0, 0),  # pos
                200,  # delta
                QtCore.Qt.NoButton,  # buttons
                QtCore.Qt.NoModifier,  # modifiers
                QtCore.Qt.Horizontal,  # orient
            )
        elif is_qt5:
            qt_event = QtGui.QWheelEvent(
                QtCore.QPoint(0, 0),  # pos
                self.window.control.mapToGlobal(QtCore.QPoint(0,
                                                              0)),  # globalPos
                QtCore.QPoint(200, 0),  # pixelDelta
                QtCore.QPoint(200, 0),  # angleDelta
                200,  # qt4Delta
                QtCore.Qt.Horizontal,  # qt4Orietation
                QtCore.Qt.NoButton,  # buttons
                QtCore.Qt.NoModifier,  # modifiers
                QtCore.Qt.ScrollUpdate,  # phase
            )
        else:
            qt_event = QtGui.QWheelEvent(
                QtCore.QPointF(0, 0),  # pos
                self.window.control.mapToGlobal(QtCore.QPointF(
                    0, 0)),  # globalPos
                QtCore.QPoint(200, 0),  # pixelDelta
                QtCore.QPoint(200, 0),  # angleDelta
                QtCore.Qt.NoButton,  # buttons
                QtCore.Qt.NoModifier,  # modifiers
                QtCore.Qt.ScrollUpdate,  # phase
                False,  # inverted
            )

        # dispatch event
        self.window._on_mouse_wheel(qt_event)

        # validate results
        self.assertEqual(self.tool.event.mouse_wheel_axis, "horizontal")
        self.assertAlmostEqual(self.tool.event.mouse_wheel, 5.0 / 3.0)
        self.assertEqual(self.tool.event.mouse_wheel_delta, (200, 0))

    def test_vertical_mouse_wheel_without_pixel_delta(self):
        from pyface.qt import QtCore, QtGui, is_qt4, is_qt5

        # create and mock a mouse wheel event
        if is_qt4:
            qt_event = QtGui.QWheelEvent(
                QtCore.QPoint(0, 0),  # pos
                200,  # delta
                QtCore.Qt.NoButton,  # buttons
                QtCore.Qt.NoModifier,  # modifiers
                QtCore.Qt.Vertical,  # orient
            )
        elif is_qt5:
            qt_event = QtGui.QWheelEvent(
                QtCore.QPoint(0, 0),  # pos
                self.window.control.mapToGlobal(QtCore.QPoint(0,
                                                              0)),  # globalPos
                QtCore.QPoint(0, 0),  # pixelDelta
                QtCore.QPoint(0, 200),  # angleDelta
                200,  # qt4Delta
                QtCore.Qt.Horizontal,  # qt4Orientation
                QtCore.Qt.NoButton,  # buttons
                QtCore.Qt.NoModifier,  # modifiers
                QtCore.Qt.ScrollUpdate,  # phase
            )
        else:
            qt_event = QtGui.QWheelEvent(
                QtCore.QPointF(0, 0),  # pos
                self.window.control.mapToGlobal(QtCore.QPointF(
                    0, 0)),  # globalPos
                QtCore.QPoint(0, 0),  # pixelDelta
                QtCore.QPoint(0, 200),  # angleDelta
                QtCore.Qt.NoButton,  # buttos
                QtCore.Qt.NoModifier,  # modifiers
                QtCore.Qt.ScrollUpdate,  # phase
                False,  # inverted
            )

        # dispatch event
        self.window._on_mouse_wheel(qt_event)

        # validate results
        self.assertEqual(self.tool.event.mouse_wheel_axis, "vertical")
        self.assertEqual(self.tool.event.mouse_wheel, 5.0 / 3.0)
        self.assertEqual(self.tool.event.mouse_wheel_delta, (0, 200))
示例#6
0
class MouseWheelTestCase(TestCase):

    def setUp(self):

        # set up Enable components and tools
        self.container = Container(postion=[0, 0], bounds=[600, 600])
        self.tool = MouseEventTool(component=self.container)
        self.container.tools.append(self.tool)

        # set up qt components
        self.window = Window(
            None,
            size=(600, 600),
            component=self.container
        )

        # Hack: event processing code skips if window not actually shown by
        # testing for value of _size
        self.window._size = (600, 600)

    def test_vertical_mouse_wheel(self):
        from pyface.qt import QtCore, QtGui

        is_qt4 = (QtCore.__version_info__[0] <= 4)

        # create and mock a mouse wheel event
        if is_qt4:
            qt_event = QtGui.QWheelEvent(
                QtCore.QPoint(0, 0), 200, QtCore.Qt.NoButton,
                QtCore.Qt.NoModifier, QtCore.Qt.Vertical
            )
        else:
            qt_event = QtGui.QWheelEvent(
                QtCore.QPointF(0, 0),
                self.window.control.mapToGlobal(QtCore.QPoint(0, 0)),
                QtCore.QPoint(0, 200), QtCore.QPoint(0, 200), 200,
                QtCore.Qt.Vertical, QtCore.Qt.NoButton, QtCore.Qt.NoModifier,
                QtCore.Qt.ScrollUpdate
            )

        # dispatch event
        self.window._on_mouse_wheel(qt_event)

        # validate results
        self.assertEqual(self.tool.event.mouse_wheel_axis, 'vertical')
        self.assertAlmostEqual(self.tool.event.mouse_wheel, 5.0/3.0)
        self.assertEqual(self.tool.event.mouse_wheel_delta, (0, 200))

    def test_horizontal_mouse_wheel(self):
        from pyface.qt import QtCore, QtGui

        is_qt4 = (QtCore.__version_info__[0] <= 4)

        # create and mock a mouse wheel event
        if is_qt4:
            qt_event = QtGui.QWheelEvent(
                QtCore.QPoint(0, 0), 200, QtCore.Qt.NoButton,
                QtCore.Qt.NoModifier, QtCore.Qt.Horizontal
            )
        else:
            qt_event = QtGui.QWheelEvent(
                QtCore.QPoint(0, 0),
                self.window.control.mapToGlobal(QtCore.QPoint(0, 0)),
                QtCore.QPoint(200, 0), QtCore.QPoint(200, 0), 200,
                QtCore.Qt.Vertical, QtCore.Qt.NoButton, QtCore.Qt.NoModifier,
                QtCore.Qt.ScrollUpdate
            )

        # dispatch event
        self.window._on_mouse_wheel(qt_event)

        # validate results
        self.assertEqual(self.tool.event.mouse_wheel_axis, 'horizontal')
        self.assertAlmostEqual(self.tool.event.mouse_wheel, 5.0/3.0)
        self.assertEqual(self.tool.event.mouse_wheel_delta, (200, 0))

    def test_vertical_mouse_wheel_without_pixel_delta(self):
        from pyface.qt import QtCore, QtGui
        is_qt4 = (QtCore.__version_info__[0] <= 4)
        if is_qt4:
            self.skipTest("Not directly applicable in Qt4")

        # create and mock a mouse wheel event
        qt_event = QtGui.QWheelEvent(
            QtCore.QPointF(0, 0),
            self.window.control.mapToGlobal(QtCore.QPoint(0, 0)),
            QtCore.QPoint(0, 0), QtCore.QPoint(0, 200), 200,
            QtCore.Qt.Vertical, QtCore.Qt.NoButton, QtCore.Qt.NoModifier,
            QtCore.Qt.ScrollUpdate
        )

        # dispatch event
        self.window._on_mouse_wheel(qt_event)

        # validate results
        self.assertEqual(self.tool.event.mouse_wheel_axis, 'vertical')
        self.assertEqual(self.tool.event.mouse_wheel, 5.0/3.0)
        self.assertEqual(self.tool.event.mouse_wheel_delta, (0, 200))