import vgl
import time

window = vgl.Window(title="Pulsar", size=(1024, 768))

def horizontal_indicator():
    global window
    frame = vgl.Frame().attach(window_object=window, poscale=(0, 0), clone_name="Horizontal Indicator")
    vgl.elements.Line(ends=[(0.4, 0.5), (0.6, 0.5)], color="green").attach(frame_object=frame)
    pass

def marking_lines():
    global window
    frame = vgl.Frame().attach(window_object=window, poscale=(0,0), clone_name="Marking Line")
    lines = list()
    for i in range(0, 24):
        lines.append(vgl.elements.Line(ends=[(0, i/24), (1, i/24)], color="green").attach(frame_object=frame))
    for i in range(0, 32):
        lines.append(vgl.elements.Line(ends=[(i/32, 0), (i/32, 1)], color="green").attach(frame_object=frame))
    @window.observerize
    def observer(info):
        if info["delta"] == "key":
            print(info)
        for i in lines:
            i.set_color('#' + str((info['cursor']['position'][0] + info['cursor']['position'][1]*100 + info['cursor']['position'][0]*10000) % 999999).zfill(6))
    observer()

def console():
    print("You've entered Pulsar's command console, an embbedded Python interpreter for debugging & testing")
    while True:
        try:
            i = input(">>> ")
            if i == "q":
                return
            exec(i)
        except:
            print("An error occured & captured")

if __name__ == '__main__':
    print("Welcome to AiraPulsar Client")
    window.start()
    horizontal_indicator()
    marking_lines()
    console()
    input("任意键以退出")
    window.kill()
    exit()