import dos

# A GUI program: the shared D/OS lifecycle delivers open, draw, input and close.
clicks = 0

@dos.on("WINDOW_OPEN")
def open_window():
    dos.service("SET_TITLE", "d/Python — Hello, Mac")

@dos.on("WINDOW_DRAW")
def draw_window():
    dos.intent("GFX", "BEGIN_FRAME")
    dos.intent("GFX", "FILL_RECT", 0, 0, 320, 200, 4226)
    dos.intent("GFX", "FILL_RECT", 12, 12, 296, 44, 6371)
    dos.intent("GFX", "DRAW_TEXT", 24, 26, "d/Python", 1, -1, 6371)
    dos.intent("GFX", "DRAW_TEXT", 24, 78, "Python. Shared DBC. Real windows.", 1, -1, 4226)
    dos.intent("GFX", "DRAW_TEXT", 24, 104, "Key events: " + str(clicks), 1, 2047, 4226)
    dos.intent("GFX", "DRAW_TEXT", 24, 150, "Press a key to update this window.", 1, -21163, 4226)
    dos.intent("GFX", "PRESENT")

@dos.on("ON_KEY")
def on_key(key):
    global clicks
    clicks += 1
    dos.service("INVALIDATE")

@dos.on("WINDOW_CLOSE")
def close_window():
    pass
