58 lines
1.6 KiB
Python
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()
|