void closeAll(WMWidget *self,void *data)
{
  fprintf(stderr, "I've been used!\n");
  WMDestroyWidget(self);
  exit(0);
}

static void
handleEvents(XEvent *event, void *data)
{
    WMWidget *widget = (WMWidget*)data;
    switch (event->type) {
    case ButtonPress:
        closeAll(widget,NULL);
        break;
    }
}

int main(int argc, char **argv)
{
  Display *display;
  WMScreen *screen;

  WMWindow *win;
  WMColor *color;

  WMInitializeApplication("ThirdWindow", &argc, argv);

  if (!(display = XOpenDisplay(""))) {
    fprintf(stderr,"error: cannot open display\n");
    exit(1);
  }
  screen = WMCreateScreen(display, DefaultScreen(display));

  win = WMCreateWindow(screen, "");
  WMSetWindowCloseAction(win, closeAll, NULL);
  WMCreateEventHandler(WMWidgetView(win), ButtonPressMask, handleEvents, win);
  color = WMCreateRGBColor(screen, 124<<9, 206<<8, 162<<8, False);
  WMSetWidgetBackgroundColor((WMWidget *)win, color);

  WMMapWidget(win);
  WMRealizeWidget(win);

  WMScreenMainLoop(screen);

  return 0;
}
