#
#   PyGUI - Test targeted() and untargeted() methods
#

from GUI import View, Window, application
from GUI.StdColors import red, green

class TestPatch(View):

    def __init__(self, name, color, **kwds):
        self.name = name
        self.color = color
        View.__init__(self, size = (60, 60), **kwds)
    
    def draw(self, c, r):
        c.forecolor = self.color
        c.fill_rect(r)
    
    def mouse_down(self, e):
        print "%s clicked" % self.name
        self.become_target()
    
    def targeted(self):
        print "%s targeted" % self.name

    def untargeted(self):
        print "%s untargeted" % self.name

def test():
    win = Window(title = "Targeting", size = (180, 100))
    patch1 = TestPatch("Red patch", red, position = (20, 20))
    patch2 = TestPatch("Green patch", green, position = (100, 20))
    win.add(patch1)
    win.add(patch2)
    win.show()
    application().run()

instructions = """
There should be a window with two coloured patches. Clicking
in a patch will make it the target. Messages should be printed
whenever a patch is clicked or its target status changes.
"""

print instructions
test()
