Using Menus

#include "graphapp.h"

#define NUM_COLOURS 5

char *colour_name[NUM_COLOURS] = {
  "White", "Black", "Red", "Green", "Blue"
};
rgb colour[NUM_COLOURS] = {
  White, Black, Red, Green, Blue
};
menuitem item[NUM_COLOURS];
rgb which_colour;
window w;

void draw_window(window w, rect r)
{
  drawto(w);
  setcolour(which_colour);
  fillrect(r);
}

void change_colour(menuitem m)
{
  int i;
  int value;

  value = getvalue(m);

  /* uncheck all items in the menu */
  for (i=0; i < NUM_COLOURS; i++)
    uncheck(item[i]);

  /* check this menu item */
  check(m);
  which_colour = colour[value];

  /* redraw the window */
  redraw(w);
}

void quit(menu m)
{
  exitapp();
}