from GUI import Window, Menu, Label, application
from testing import say

class MenuTestWindow(Window):

    is_hoopy = 1
    is_smeggy = 0

    def setup_menus(self, m):
        m.hoopy_cmd.enabled = 1
        m.smeggy_cmd.enabled = 1
        m.hoopy_cmd.checked = self.is_hoopy
        m.smeggy_cmd.checked = self.is_smeggy
        m.flavour_cmd.enabled = 1

    def hoopy_cmd(self):
        self.is_hoopy = 1
        self.is_smeggy = 0

    def smeggy_cmd(self):
        self.is_hoopy = 0
        self.is_smeggy = 1
    
    def flavour_cmd(self, i):
        if self.is_hoopy:
            hs = "Hoopy"
        else:
            hs = "Smeggy"
        lbl.text = "%s Flavour %s" % (hs, i)


menus = [
    Menu("Flavour", [
        ("Hoopy/^H", 'hoopy_cmd'),
        ("Smeggy/^S", 'smeggy_cmd'),
        ("-"),
        (["Vanilla/^V", "Raspberry/^R", "Chocolate/^C"], 'flavour_cmd'),
        ]
    )
]

win = MenuTestWindow(title = "Menus", size = (240, 60))
win.menus = menus
lbl = Label("Select a Flavour", position = (20, 20), width = 200)
win.add(lbl)
win.show()

instructions = """
In addition to the standard menus, there should be a menu "Flavours" containing
two options and three flavours. The most recently selected option should be
checked in the menu. Upon selecting a flavour, the currently selected option
and the index of the selected flavour should be displayed in the window. All
items in the Flavours menu should have shifted key equivalents.
"""

say(instructions)

application().run()
