Lightningbeam/PyGUI-2.5.3/Tests/33-mouse-events.py

58 lines
1.6 KiB
Python

#
# PyGUI - Mouse event test
from GUI import Window, application
from TestViews import TestDrawing
from TestScrollableViews import TestScrollableDrawing
from TestInput import TestMouseEvents
from testing import say
class TestView(TestMouseEvents, TestDrawing):
def __init__(self, name, **kwds):
self.name = name
TestDrawing.__init__(self, **kwds)
def mouse_down(self, event):
#self.become_target()
TestMouseEvents.mouse_down(self, event)
def report_mouse_event(self, mess):
say("%s: %s" % (self.name, mess))
class TestScrollableView(TestMouseEvents, TestScrollableDrawing):
def __init__(self, name, **kwds):
self.name = name
TestScrollableDrawing.__init__(self, scrolling = 'hv', **kwds)
def mouse_down(self, event):
#self.become_target()
TestMouseEvents.mouse_down(self, event)
def report_mouse_event(self, mess):
say("%s: %s" % (self.name, mess))
win = Window()
view1 = TestView("View 1", width = 320, height = 200)
view2 = TestScrollableView("View 2", width = 320, height = 200)
win.place_row([view1, view2], left = 20, top = 20, spacing = 20)
view2.hstretch = 1
view2.vstretch = 1
win.shrink_wrap(padding = (20, 20))
win.show()
view1.become_target()
say("""
There should be two views. The following events should be reported
in either view: mouse_down, mouse_drag, mouse_up, mouse_move.
The right-hand view should resize with the window. Check that
mouse events are still reported correctly after resizing and after
scrolling the view.
""")
application().run()