from GUI import Window, Button, RadioButton, RadioGroup, application
from testing import say

labels = ["Banana", "Chocolate", "Strawberry"]

def report():
    value = grp.value
    try:
        say(labels[value], "selected")
    except (TypeError, IndexError):
        say("Value =", value)

def set_to_chocolate():
    grp.value = 1

win = Window(width = 250, title = "Radio Groups")

grp = RadioGroup(action = report)

y = 20
for i in range(0, 3):
    rbtn = RadioButton(
        position = (20, y), 
        title = labels[i],
        group = grp, 
        value = i)
    win.add(rbtn)
    y = rbtn.bottom + 5

pbtn = Button(title = "Set to Chocolate",
    position = (20, rbtn.bottom + 20),
    action = set_to_chocolate)
win.add(pbtn)

win.height = pbtn.bottom + 20
win.show()

instructions = """
There should be three radio buttons, "Banana", "Chocolate" and "Strawberry",
and a "Set to Chocolate" button. All radio buttons should initially be off.
Turning any of the buttons on should turn the others off. Changes to the
setting should be reported.
"""

say(instructions)

application().run()
