#include #include #include #include "pz.h" static PzModule *circle; int x, y, tmp_x, tmp_y; static PzWidget *wid; int circle_dir; int started; void draw_circle (PzWidget *wid, ttk_surface srf) { ttk_fillellipse(srf, x, y, 6, 6, ttk_makecol(255,0,0)); } int event_circle (PzEvent *ev) { if(started) { switch(ev->arg) { case PZ_BUTTON_MENU: circle_dir = 0; case PZ_BUTTON_PLAY: circle_dir = 1; case PZ_BUTTON_PREVIOUS: circle_dir = 1; case PZ_BUTTON_NEXT: circle_dir = 1; case PZ_BUTTON_ACTION: if(!started) started = 1; default: move_circle(); } } int move_circle (){ switch (circle_dir){ case 0: y+=5; wid->dirty++; break; case 1: y-=5; wid->dirty++; break; case 2: x-=5; wid->dirty++; break; case 3: x+=5; wid->dirty++; break; } } PzWindow *new_circle_window() { PzWindow *ret; ret = pz_new_window ("Circle", PZ_WINDOW_NORMAL); wid = pz_add_widget (ret, draw_circle, event_circle); return pz_finish_window (ret); } void cleanup_circle() { printf ("Bye-bye now...\n"); } void init_circle() { circle = pz_register_module ("circle", cleanup_circle); pz_menu_add_action ("/Extras/Games/Circle", new_circle_window); } PZ_MOD_INIT (init_circle)