/*
 * Copyright 1988, 1989, 1990, 1991 Massachusetts Institute of Technology
 */
#include"xpointer.h"
#include<stdio.h>

#ifdef PLX
#define PLXHEIGHT 510
#endif

#define HEIGHT 20

create_root()
{
  extern Display *dpy;
  extern Window root;
#ifdef PLX
  extern int plx;
#endif PLX
  extern int realheight;
  extern Visual *visual;
  extern Colormap cmap;
  extern XColor background, border;
  extern Cursor lightcursor;
  extern int screen, draw_active(), border_width, message_handler();
  extern XContext expose_context, msg_context;
  XSetWindowAttributes setattributes;
  unsigned long valuemask;
  Atom del_atom, resize_atom, window_atom;

#ifdef PLX
  if (plx) realheight = PLXHEIGHT;
  else {
#endif PLX
    realheight = HEIGHT;
#ifdef PLX
  }
#endif PLX    

  setattributes.colormap = cmap;
  setattributes.background_pixel = background.pixel;
  setattributes.cursor = lightcursor;
  setattributes.event_mask = ExposureMask;
  setattributes.border_pixel = border.pixel;
  valuemask = CWColormap | CWBackPixel | CWCursor | 
    CWEventMask | CWBorderPixel;
  root = XCreateWindow(dpy, DefaultRootWindow(dpy), 0, 0,
		       700, realheight + 170, border_width, 
		       0, InputOutput, visual, 
		       valuemask, &setattributes);
  XSaveContext( dpy, root, expose_context, draw_active);
/*  XStoreName(dpy, root, "gctl");*/
  XSetIconName(dpy, root, "gctl");

  del_atom =    XInternAtom(dpy, "_OL_DECOR_DEL", FALSE);
  resize_atom = XInternAtom(dpy, "_OL_DECOR_RESIZE", FALSE);
  (void)XChangeProperty(dpy, root, del_atom, XA_ATOM, 32,
			PropModeReplace, &resize_atom, 1);

  window_atom = XInternAtom(dpy, "WM_DELETE_WINDOW", FALSE);
  (void)XSetWMProtocols(dpy, root, &window_atom, 1);

  XSaveContext( dpy, root, msg_context, message_handler);

}

message_handler(event)
     XEvent event;
{
    XClientMessageEvent *msg = (XClientMessageEvent *)&event;
   
    if (!strcmp((char *)XGetAtomName(dpy, msg->message_type),
		"WM_PROTOCOLS")) {        
    	if (!strcmp((char *)XGetAtomName(dpy, msg->data.l[0]), 
		    "WM_DELETE_WINDOW")) {
	    exit(0);
	}
    }
}
