X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=moebius.git;a=blobdiff_plain;f=x11.cc;h=c8eb915cac381c706762b10167080273670c997c;hp=f689362d2f5bc9f3bc0c9c896769000394784c96;hb=e3bee50adc59d8434862a0a3e6b0e82f61954a90;hpb=a072f70703d677fbb33d26c5a8c7c26a7659d03d diff --git a/x11.cc b/x11.cc index f689362..c8eb915 100644 --- a/x11.cc +++ b/x11.cc @@ -8,36 +8,32 @@ static Parameter x11size("x11size", "X11 window size", 500, 100, 10, 10000); -static unsigned long colour_pixel(Display *display, Colormap cmap, - const char *name) { +GC X11Output::gc(const char *colour_name) { + XGCValues gcvalues; XColor colour; Status st; - st= XAllocNamedColor(display,cmap,name,&colour,&colour); + + st= XAllocNamedColor(display,cmap,colour_name,&colour,&colour); if (!st) { - cerr << "cannot allocate colour " << name << ", quitting\n"; + cerr << "cannot allocate colour " << colour_name << ", quitting\n"; exit(1); } - return colour.pixel; + + gcvalues.foreground= gcvalues.background= colour.pixel; + return XCreateGC(display,window,GCForeground|GCBackground,&gcvalues); } X11Output::X11Output() { - XGCValues gcvalues; - display= XOpenDisplay(0); window= XCreateSimpleWindow(display, DefaultRootWindow(display), 0,0, x11size,x11size, 0,0,0); + cmap= DefaultColormap(display,DefaultScreen(display)); - Colormap cmap= DefaultColormap(display,DefaultScreen(display)); - black= colour_pixel(display,cmap,"black"); - white= colour_pixel(display,cmap,"white"); - - gcvalues.foreground= gcvalues.background= black; - fabric= XCreateGC(display,window,GCForeground|GCBackground,&gcvalues); - - gcvalues.foreground= gcvalues.background= white; - - mesh= XCreateGC(display,window,GCForeground|GCBackground,&gcvalues); + black= gc("black"); + white= gc("white"); + blue= gc("blue"); + red= gc("red"); XSelectInput(display,window,0); XMapWindow(display,window); @@ -57,8 +53,7 @@ X11Output::~X11Output() { } void X11Output::drawcell(const Point* list, int n, Colour colour) { - GC fill; - bool draw; + GC fill, draw; XPoint xp[n+1]; for (int i=0; i