# #define MAXUSERS 4 #include #include #define TRUE 1 #define FALSE 0 main(argc,argv) int argc; char **argv; { Display *display[MAXUSERS]; Window root[MAXUSERS], window[MAXUSERS]; long fgcolor, bgcolor; int screen, pointx, pointy; int eventmask = KeyPressMask|ExposureMask|ButtonPressMask; XEvent event; XGCValues gcval; GC draw[MAXUSERS]; int FirstPt = TRUE; int NC; int i; if (argc == 1) NC = argc; else NC = argc-1; for (i=0; i< NC; i++){ if (!(display[i] = XOpenDisplay(argv[i+1]))) { perror("XOpenDisplay"); exit(1); } root[i] = RootWindow(display[i],screen = DefaultScreen(display[i])); fgcolor = BlackPixel(display[i],screen); bgcolor = WhitePixel(display[i],screen); window[i] = XCreateSimpleWindow(display[i],root[i],0,0,200,200,2, fgcolor,bgcolor); gcval.foreground = fgcolor; gcval.background = bgcolor; draw[i] = XCreateGC(display[i],window[i],GCForeground|GCBackground,&gcval); XMapWindow(display[i],window[i]); XFlush(display[i]); } XSelectInput(display[0],window[0],eventmask); for (;;) { XWindowEvent(display[0],window[0],eventmask,&event); switch (event.type) { case Expose: for (i=0; i