ref: ec236059b618dbad4e54a295b94557659435024e
parent: 2febff5948ebb7bf7092911b8fe5dc54cb36cc8b
author: stanley lieber <[email protected]>
date: Mon May 9 12:51:12 EDT 2011
there are no pastel paints in the dungeons and dragons world - rob pike
--- a/sys/src/cmd/rio/wind.c
+++ b/sys/src/cmd/rio/wind.c
@@ -23,6 +23,7 @@
static int topped;
static int id;
+static int reverse;
static Image *cols[NCOL];
static Image *grey;
@@ -30,6 +31,7 @@
static Cursor *lastcursor;
static Image *titlecol;
static Image *lighttitlecol;
+static Image *dholdcol;
static Image *holdcol;
static Image *lightholdcol;
static Image *paleholdcol;
@@ -41,19 +43,36 @@
Rectangle r;
if(cols[0] == nil){
+ /* there are no pastel paints in the dungeons and dragons world
+ * - rob pike
+ */
+ reverse = 0;
+ if(getenv("reverse") != nil)
+ reverse = ~0xFF;
+
/* greys are multiples of 0x11111100+0xFF, 14* being palest */
- grey = allocimage(display, Rect(0,0,1,1), CMAP8, 1, 0xEEEEEEFF);
- darkgrey = allocimage(display, Rect(0,0,1,1), CMAP8, 1, 0x666666FF);
- cols[BACK] = display->white;
- cols[HIGH] = allocimage(display, Rect(0,0,1,1), CMAP8, 1, 0xCCCCCCFF);
+ grey = allocimage(display, Rect(0,0,1,1), CMAP8, 1, 0xEEEEEEFF^reverse);
+ darkgrey = allocimage(display, Rect(0,0,1,1), CMAP8, 1, 0x666666FF^reverse);
+ cols[BACK] = allocimage(display, Rect(0,0,1,1), CMAP8, 1, 0xFFFFFFFF^reverse);
+ cols[HIGH] = allocimage(display, Rect(0,0,1,1), CMAP8, 1, 0xCCCCCCFF^reverse);
cols[BORD] = allocimage(display, Rect(0,0,1,1), CMAP8, 1, 0x999999FF);
- cols[TEXT] = display->black;
- cols[HTEXT] = display->black;
- titlecol = allocimage(display, Rect(0,0,1,1), CMAP8, 1, DGreygreen);
- lighttitlecol = allocimage(display, Rect(0,0,1,1), CMAP8, 1, DPalegreygreen);
- holdcol = allocimage(display, Rect(0,0,1,1), CMAP8, 1, DMedblue);
+ cols[TEXT] = allocimage(display, Rect(0,0,1,1), CMAP8, 1, 0x000000FF^reverse);
+ cols[HTEXT] = allocimage(display, Rect(0,0,1,1), CMAP8, 1, 0x000000FF^reverse);
+ if(reverse == 0) {
+ titlecol = allocimage(display, Rect(0,0,1,1), CMAP8, 1, DGreygreen);
+ lighttitlecol = allocimage(display, Rect(0,0,1,1), CMAP8, 1, DPalegreygreen);
+ } else {
+ titlecol = allocimage(display, Rect(0,0,1,1), CMAP8, 1, DPurpleblue);
+ lighttitlecol = allocimage(display, Rect(0,0,1,1), CMAP8, 1, 0x666666FF^reverse);
+ }
+ dholdcol = allocimage(display, Rect(0,0,1,1), CMAP8, 1, DMedblue);
lightholdcol = allocimage(display, Rect(0,0,1,1), CMAP8, 1, DGreyblue);
paleholdcol = allocimage(display, Rect(0,0,1,1), CMAP8, 1, DPalegreyblue);
+
+ if(reverse == 0)
+ holdcol = dholdcol;
+ else
+ holdcol = paleholdcol;
}
w = emalloc(sizeof(Window));
w->screenr = i->r;
@@ -700,7 +719,7 @@
w->cols[TEXT] = w->cols[HTEXT] = lightholdcol;
else
if(w == input)
- w->cols[TEXT] = w->cols[HTEXT] = display->black;
+ w->cols[TEXT] = w->cols[HTEXT] = cols[TEXT];
else
w->cols[TEXT] = w->cols[HTEXT] = darkgrey;
}
@@ -1300,7 +1319,6 @@
if(hidden[i] == w){
--nhidden;
memmove(hidden+i, hidden+i+1, (nhidden-i)*sizeof(hidden[0]));
- hidden[nhidden] = nil;
break;
}
for(i=0; i<nwindow; i++)