# Demo script that implements a simple drawing program import upiwin # Save off some color values. WHITE = upiwin.rgb(255, 255, 255) LTGRAY = upiwin.rgb(204, 204, 204) YELLOW = upiwin.rgb(255, 255, 0) hdc = upiwin.DevCtxt(type='screen') # divide the screen into "drawing" and "command" areas drawing_rect = hdc.get_clip_rect() command_rect = drawing_rect drawing_rect[2] -= 60; command_rect[0] = drawing_rect[2] + 1 # further divide up the "command" area cmd1_rect = command_rect cmd2_rect = command_rect cmd3_rect = command_rect cmd4_rect = command_rect cmd1_rect[3] = 60; cmd2_rect[1] = 60; cmd2_rect[3] = 120; cmd3_rect[1] = 120; cmd3_rect[3] = 180; cmd4_rect[1] = 180; def point_in_rect(rect, x, y): return (x >= rect[0]) and (x < rect[2]) and (y >= rect[1]) and (y < rect[3]) # --- Initialize and start message loop --- # Draw the basic layout. hdc.set_text_color(LTGRAY) hdc.rectangle(cmd1_rect[0], cmd1_rect[1], cmd1_rect[2], cmd1_rect[3]) hdc.rectangle(cmd2_rect[0], cmd2_rect[1], cmd2_rect[2], cmd2_rect[3]) hdc.rectangle(cmd3_rect[0], cmd3_rect[1], cmd3_rect[2], cmd3_rect[3]) hdc.rectangle(cmd4_rect[0], cmd4_rect[1], cmd4_rect[2], cmd4_rect[3]) # Main message loop msg = {} while upiwin.get_message(msg): if msg['message'] == upiwin.WM_TOUCHCLICK: if point_in_rect(cmd1_rect, msg['attrs'][0], msg['attrs'][1]): print("Click command 1") elif point_in_rect(cmd2_rect, msg['attrs'][0], msg['attrs'][1]): print("Click command 2") elif point_in_rect(cmd3_rect, msg['attrs'][0], msg['attrs'][1]): print("Click command 3") elif point_in_rect(cmd4_rect, msg['attrs'][0], msg['attrs'][1]): print("Click command 4") elif msg['message'] == upiwin.WM_HWBUTTONCLICK: if msg['attrs'][0] == 4: # Button 4 = Exit app upiwin.post_quit_message(0)