137da2899SCharles.Forsyth #include "lib9.h"
237da2899SCharles.Forsyth #include "draw.h"
337da2899SCharles.Forsyth #include "tk.h"
437da2899SCharles.Forsyth
537da2899SCharles.Forsyth #define RGB(R,G,B) ((R<<24)|(G<<16)|(B<<8)|(0xff))
637da2899SCharles.Forsyth
737da2899SCharles.Forsyth enum
837da2899SCharles.Forsyth {
937da2899SCharles.Forsyth tkBackR = 0xdd, /* Background base color */
1037da2899SCharles.Forsyth tkBackG = 0xdd,
1137da2899SCharles.Forsyth tkBackB = 0xdd,
1237da2899SCharles.Forsyth
1337da2899SCharles.Forsyth tkSelectR = 0xb0, /* Check box selected color */
1437da2899SCharles.Forsyth tkSelectG = 0x30,
1537da2899SCharles.Forsyth tkSelectB = 0x60,
1637da2899SCharles.Forsyth
1737da2899SCharles.Forsyth tkSelectbgndR = 0x40, /* Selected item background */
1837da2899SCharles.Forsyth tkSelectbgndG = 0x40,
1937da2899SCharles.Forsyth tkSelectbgndB = 0x40
2037da2899SCharles.Forsyth };
2137da2899SCharles.Forsyth
2237da2899SCharles.Forsyth typedef struct Coltab Coltab;
2337da2899SCharles.Forsyth struct Coltab {
2437da2899SCharles.Forsyth int c;
2537da2899SCharles.Forsyth ulong rgba;
2637da2899SCharles.Forsyth int shade;
2737da2899SCharles.Forsyth };
2837da2899SCharles.Forsyth
2937da2899SCharles.Forsyth static Coltab coltab[] =
3037da2899SCharles.Forsyth {
3137da2899SCharles.Forsyth TkCbackgnd,
3237da2899SCharles.Forsyth RGB(tkBackR, tkBackG, tkBackB),
3337da2899SCharles.Forsyth TkSameshade,
3437da2899SCharles.Forsyth TkCbackgndlght,
3537da2899SCharles.Forsyth RGB(tkBackR, tkBackG, tkBackB),
3637da2899SCharles.Forsyth TkLightshade,
3737da2899SCharles.Forsyth TkCbackgnddark,
3837da2899SCharles.Forsyth RGB(tkBackR, tkBackG, tkBackB),
3937da2899SCharles.Forsyth TkDarkshade,
4037da2899SCharles.Forsyth TkCactivebgnd,
4137da2899SCharles.Forsyth RGB(tkBackR+0x10, tkBackG+0x10, tkBackB+0x10),
4237da2899SCharles.Forsyth TkSameshade,
4337da2899SCharles.Forsyth TkCactivebgndlght,
4437da2899SCharles.Forsyth RGB(tkBackR+0x10, tkBackG+0x10, tkBackB+0x10),
4537da2899SCharles.Forsyth TkLightshade,
4637da2899SCharles.Forsyth TkCactivebgnddark,
4737da2899SCharles.Forsyth RGB(tkBackR+0x10, tkBackG+0x10, tkBackB+0x10),
4837da2899SCharles.Forsyth TkDarkshade,
4937da2899SCharles.Forsyth TkCactivefgnd,
5037da2899SCharles.Forsyth RGB(0, 0, 0),
5137da2899SCharles.Forsyth TkSameshade,
5237da2899SCharles.Forsyth TkCforegnd,
5337da2899SCharles.Forsyth RGB(0, 0, 0),
5437da2899SCharles.Forsyth TkSameshade,
5537da2899SCharles.Forsyth TkCselect,
5637da2899SCharles.Forsyth RGB(tkSelectR, tkSelectG, tkSelectB),
5737da2899SCharles.Forsyth TkSameshade,
5837da2899SCharles.Forsyth TkCselectbgnd,
5937da2899SCharles.Forsyth RGB(tkSelectbgndR, tkSelectbgndG, tkSelectbgndB),
6037da2899SCharles.Forsyth TkSameshade,
6137da2899SCharles.Forsyth TkCselectbgndlght,
6237da2899SCharles.Forsyth RGB(tkSelectbgndR, tkSelectbgndG, tkSelectbgndB),
6337da2899SCharles.Forsyth TkLightshade,
6437da2899SCharles.Forsyth TkCselectbgnddark,
6537da2899SCharles.Forsyth RGB(tkSelectbgndR, tkSelectbgndG, tkSelectbgndB),
6637da2899SCharles.Forsyth TkDarkshade,
6737da2899SCharles.Forsyth TkCselectfgnd,
6837da2899SCharles.Forsyth RGB(0xff, 0xff, 0xff),
6937da2899SCharles.Forsyth TkSameshade,
7037da2899SCharles.Forsyth TkCdisablefgnd,
7137da2899SCharles.Forsyth RGB(0x88, 0x88, 0x88),
7237da2899SCharles.Forsyth TkSameshade,
7337da2899SCharles.Forsyth TkChighlightfgnd,
7437da2899SCharles.Forsyth RGB(0, 0, 0),
7537da2899SCharles.Forsyth TkSameshade,
76*f94b359dSforsyth TkCtransparent,
77*f94b359dSforsyth DTransparent,
78*f94b359dSforsyth TkSameshade,
7937da2899SCharles.Forsyth -1,
8037da2899SCharles.Forsyth };
8137da2899SCharles.Forsyth
8237da2899SCharles.Forsyth void
tksetenvcolours(TkEnv * env)8337da2899SCharles.Forsyth tksetenvcolours(TkEnv *env)
8437da2899SCharles.Forsyth {
8537da2899SCharles.Forsyth Coltab *c;
8637da2899SCharles.Forsyth
8737da2899SCharles.Forsyth c = &coltab[0];
8837da2899SCharles.Forsyth while(c->c != -1) {
8937da2899SCharles.Forsyth env->colors[c->c] = tkrgbashade(c->rgba, c->shade);
9037da2899SCharles.Forsyth env->set |= (1<<c->c);
9137da2899SCharles.Forsyth c++;
9237da2899SCharles.Forsyth }
9337da2899SCharles.Forsyth }
94