diff options
Diffstat (limited to 'hw/kdrive/src/kcolor.c')
-rw-r--r-- | hw/kdrive/src/kcolor.c | 883 |
1 files changed, 883 insertions, 0 deletions
diff --git a/hw/kdrive/src/kcolor.c b/hw/kdrive/src/kcolor.c new file mode 100644 index 000000000..b2ef89e19 --- /dev/null +++ b/hw/kdrive/src/kcolor.c @@ -0,0 +1,883 @@ +/* + * $Id$ + * + * Copyright © 1999 Keith Packard + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation, and that the name of Keith Packard not be used in + * advertising or publicity pertaining to distribution of the software without + * specific, written prior permission. Keith Packard makes no + * representations about the suitability of this software for any purpose. It + * is provided "as is" without express or implied warranty. + * + * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO + * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR + * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ +/* $XFree86: $ */ + +/* $XConsortium: oscolor.c,v 1.23 94/04/17 20:27:04 dpw Exp $ */ + +#include "kdrive.h" +#include <stdio.h> +#include "os.h" +#include "opaque.h" +#include <X11/keysym.h> + +unsigned char +KdToLower (unsigned char a) +{ + if ((a >= XK_A) && (a <= XK_Z)) + return a + (XK_a - XK_A); + else if ((a >= XK_Agrave) && (a <= XK_Odiaeresis)) + return a + (XK_agrave - XK_Agrave); + else if ((a >= XK_Ooblique) && (a <= XK_Thorn)) + return a + (XK_oslash - XK_Ooblique); + else + return a; +} + +int +KdStrCaseCmp (unsigned char *s1, unsigned char *s2, int l2) +{ + unsigned char c1, c2; + + for (;;) + { + c1 = KdToLower (*s1++); + if (l2 == 0) + c2 = '\0'; + else + c2 = KdToLower (*s2++); + if (!c1 || !c2) + break; + if (c1 != c2) + break; + l2--; + } + return c2 - c1; +} + +typedef struct _kdNamedColor { + unsigned short red; + unsigned short green; + unsigned short blue; + unsigned char *name; +} KdNamedColor; + +#define C 0x101 + +KdNamedColor KdColors[] = { +240*C, 248*C, 255*C, "alice blue", +240*C, 248*C, 255*C, "AliceBlue", +250*C, 235*C, 215*C, "antique white", +250*C, 235*C, 215*C, "AntiqueWhite", +255*C, 239*C, 219*C, "AntiqueWhite1", +238*C, 223*C, 204*C, "AntiqueWhite2", +205*C, 192*C, 176*C, "AntiqueWhite3", +139*C, 131*C, 120*C, "AntiqueWhite4", +127*C, 255*C, 212*C, "aquamarine", +127*C, 255*C, 212*C, "aquamarine1", +118*C, 238*C, 198*C, "aquamarine2", +102*C, 205*C, 170*C, "aquamarine3", + 69*C, 139*C, 116*C, "aquamarine4", +240*C, 255*C, 255*C, "azure", +240*C, 255*C, 255*C, "azure1", +224*C, 238*C, 238*C, "azure2", +193*C, 205*C, 205*C, "azure3", +131*C, 139*C, 139*C, "azure4", +245*C, 245*C, 220*C, "beige", +255*C, 228*C, 196*C, "bisque", +255*C, 228*C, 196*C, "bisque1", +238*C, 213*C, 183*C, "bisque2", +205*C, 183*C, 158*C, "bisque3", +139*C, 125*C, 107*C, "bisque4", + 0*C, 0*C, 0*C, "black", +255*C, 235*C, 205*C, "blanched almond", +255*C, 235*C, 205*C, "BlanchedAlmond", + 0*C, 0*C, 255*C, "blue", +138*C, 43*C, 226*C, "blue violet", + 0*C, 0*C, 255*C, "blue1", + 0*C, 0*C, 238*C, "blue2", + 0*C, 0*C, 205*C, "blue3", + 0*C, 0*C, 139*C, "blue4", +138*C, 43*C, 226*C, "BlueViolet", +165*C, 42*C, 42*C, "brown", +255*C, 64*C, 64*C, "brown1", +238*C, 59*C, 59*C, "brown2", +205*C, 51*C, 51*C, "brown3", +139*C, 35*C, 35*C, "brown4", +222*C, 184*C, 135*C, "burlywood", +255*C, 211*C, 155*C, "burlywood1", +238*C, 197*C, 145*C, "burlywood2", +205*C, 170*C, 125*C, "burlywood3", +139*C, 115*C, 85*C, "burlywood4", + 95*C, 158*C, 160*C, "cadet blue", + 95*C, 158*C, 160*C, "CadetBlue", +152*C, 245*C, 255*C, "CadetBlue1", +142*C, 229*C, 238*C, "CadetBlue2", +122*C, 197*C, 205*C, "CadetBlue3", + 83*C, 134*C, 139*C, "CadetBlue4", +127*C, 255*C, 0*C, "chartreuse", +127*C, 255*C, 0*C, "chartreuse1", +118*C, 238*C, 0*C, "chartreuse2", +102*C, 205*C, 0*C, "chartreuse3", +69*C, 139*C, 0*C, "chartreuse4", +210*C, 105*C, 30*C, "chocolate", +255*C, 127*C, 36*C, "chocolate1", +238*C, 118*C, 33*C, "chocolate2", +205*C, 102*C, 29*C, "chocolate3", +139*C, 69*C, 19*C, "chocolate4", +255*C, 127*C, 80*C, "coral", +255*C, 114*C, 86*C, "coral1", +238*C, 106*C, 80*C, "coral2", +205*C, 91*C, 69*C, "coral3", +139*C, 62*C, 47*C, "coral4", +100*C, 149*C, 237*C, "cornflower blue", +100*C, 149*C, 237*C, "CornflowerBlue", +255*C, 248*C, 220*C, "cornsilk", +255*C, 248*C, 220*C, "cornsilk1", +238*C, 232*C, 205*C, "cornsilk2", +205*C, 200*C, 177*C, "cornsilk3", +139*C, 136*C, 120*C, "cornsilk4", + 0*C, 255*C, 255*C, "cyan", + 0*C, 255*C, 255*C, "cyan1", + 0*C, 238*C, 238*C, "cyan2", + 0*C, 205*C, 205*C, "cyan3", + 0*C, 139*C, 139*C, "cyan4", +0*C, 0*C, 139*C, "dark blue", +0*C, 139*C, 139*C, "dark cyan", +184*C, 134*C, 11*C, "dark goldenrod", +169*C, 169*C, 169*C, "dark gray", + 0*C, 100*C, 0*C, "dark green", +169*C, 169*C, 169*C, "dark grey", +189*C, 183*C, 107*C, "dark khaki", +139*C, 0*C, 139*C, "dark magenta", + 85*C, 107*C, 47*C, "dark olive green", +255*C, 140*C, 0*C, "dark orange", +153*C, 50*C, 204*C, "dark orchid", +139*C, 0*C, 0*C, "dark red", +233*C, 150*C, 122*C, "dark salmon", +143*C, 188*C, 143*C, "dark sea green", + 72*C, 61*C, 139*C, "dark slate blue", + 47*C, 79*C, 79*C, "dark slate gray", + 47*C, 79*C, 79*C, "dark slate grey", + 0*C, 206*C, 209*C, "dark turquoise", +148*C, 0*C, 211*C, "dark violet", +0*C, 0*C, 139*C, "DarkBlue", +0*C, 139*C, 139*C, "DarkCyan", +184*C, 134*C, 11*C, "DarkGoldenrod", +255*C, 185*C, 15*C, "DarkGoldenrod1", +238*C, 173*C, 14*C, "DarkGoldenrod2", +205*C, 149*C, 12*C, "DarkGoldenrod3", +139*C, 101*C, 8*C, "DarkGoldenrod4", +169*C, 169*C, 169*C, "DarkGray", + 0*C, 100*C, 0*C, "DarkGreen", +169*C, 169*C, 169*C, "DarkGrey", +189*C, 183*C, 107*C, "DarkKhaki", +139*C, 0*C, 139*C, "DarkMagenta", + 85*C, 107*C, 47*C, "DarkOliveGreen", +202*C, 255*C, 112*C, "DarkOliveGreen1", +188*C, 238*C, 104*C, "DarkOliveGreen2", +162*C, 205*C, 90*C, "DarkOliveGreen3", +110*C, 139*C, 61*C, "DarkOliveGreen4", +255*C, 140*C, 0*C, "DarkOrange", +255*C, 127*C, 0*C, "DarkOrange1", +238*C, 118*C, 0*C, "DarkOrange2", +205*C, 102*C, 0*C, "DarkOrange3", +139*C, 69*C, 0*C, "DarkOrange4", +153*C, 50*C, 204*C, "DarkOrchid", +191*C, 62*C, 255*C, "DarkOrchid1", +178*C, 58*C, 238*C, "DarkOrchid2", +154*C, 50*C, 205*C, "DarkOrchid3", +104*C, 34*C, 139*C, "DarkOrchid4", +139*C, 0*C, 0*C, "DarkRed", +233*C, 150*C, 122*C, "DarkSalmon", +143*C, 188*C, 143*C, "DarkSeaGreen", +193*C, 255*C, 193*C, "DarkSeaGreen1", +180*C, 238*C, 180*C, "DarkSeaGreen2", +155*C, 205*C, 155*C, "DarkSeaGreen3", +105*C, 139*C, 105*C, "DarkSeaGreen4", + 72*C, 61*C, 139*C, "DarkSlateBlue", + 47*C, 79*C, 79*C, "DarkSlateGray", +151*C, 255*C, 255*C, "DarkSlateGray1", +141*C, 238*C, 238*C, "DarkSlateGray2", +121*C, 205*C, 205*C, "DarkSlateGray3", + 82*C, 139*C, 139*C, "DarkSlateGray4", + 47*C, 79*C, 79*C, "DarkSlateGrey", + 0*C, 206*C, 209*C, "DarkTurquoise", +148*C, 0*C, 211*C, "DarkViolet", +255*C, 20*C, 147*C, "deep pink", + 0*C, 191*C, 255*C, "deep sky blue", +255*C, 20*C, 147*C, "DeepPink", +255*C, 20*C, 147*C, "DeepPink1", +238*C, 18*C, 137*C, "DeepPink2", +205*C, 16*C, 118*C, "DeepPink3", +139*C, 10*C, 80*C, "DeepPink4", + 0*C, 191*C, 255*C, "DeepSkyBlue", + 0*C, 191*C, 255*C, "DeepSkyBlue1", + 0*C, 178*C, 238*C, "DeepSkyBlue2", + 0*C, 154*C, 205*C, "DeepSkyBlue3", + 0*C, 104*C, 139*C, "DeepSkyBlue4", +105*C, 105*C, 105*C, "dim gray", +105*C, 105*C, 105*C, "dim grey", +105*C, 105*C, 105*C, "DimGray", +105*C, 105*C, 105*C, "DimGrey", + 30*C, 144*C, 255*C, "dodger blue", + 30*C, 144*C, 255*C, "DodgerBlue", + 30*C, 144*C, 255*C, "DodgerBlue1", + 28*C, 134*C, 238*C, "DodgerBlue2", + 24*C, 116*C, 205*C, "DodgerBlue3", + 16*C, 78*C, 139*C, "DodgerBlue4", +178*C, 34*C, 34*C, "firebrick", +255*C, 48*C, 48*C, "firebrick1", +238*C, 44*C, 44*C, "firebrick2", +205*C, 38*C, 38*C, "firebrick3", +139*C, 26*C, 26*C, "firebrick4", +255*C, 250*C, 240*C, "floral white", +255*C, 250*C, 240*C, "FloralWhite", + 34*C, 139*C, 34*C, "forest green", + 34*C, 139*C, 34*C, "ForestGreen", +220*C, 220*C, 220*C, "gainsboro", +248*C, 248*C, 255*C, "ghost white", +248*C, 248*C, 255*C, "GhostWhite", +255*C, 215*C, 0*C, "gold", +255*C, 215*C, 0*C, "gold1", +238*C, 201*C, 0*C, "gold2", +205*C, 173*C, 0*C, "gold3", +139*C, 117*C, 0*C, "gold4", +218*C, 165*C, 32*C, "goldenrod", +255*C, 193*C, 37*C, "goldenrod1", +238*C, 180*C, 34*C, "goldenrod2", +205*C, 155*C, 29*C, "goldenrod3", +139*C, 105*C, 20*C, "goldenrod4", +190*C, 190*C, 190*C, "gray", + 0*C, 0*C, 0*C, "gray0", + 3*C, 3*C, 3*C, "gray1", + 26*C, 26*C, 26*C, "gray10", +255*C, 255*C, 255*C, "gray100", + 28*C, 28*C, 28*C, "gray11", + 31*C, 31*C, 31*C, "gray12", + 33*C, 33*C, 33*C, "gray13", + 36*C, 36*C, 36*C, "gray14", + 38*C, 38*C, 38*C, "gray15", + 41*C, 41*C, 41*C, "gray16", + 43*C, 43*C, 43*C, "gray17", + 46*C, 46*C, 46*C, "gray18", + 48*C, 48*C, 48*C, "gray19", + 5*C, 5*C, 5*C, "gray2", + 51*C, 51*C, 51*C, "gray20", + 54*C, 54*C, 54*C, "gray21", + 56*C, 56*C, 56*C, "gray22", + 59*C, 59*C, 59*C, "gray23", + 61*C, 61*C, 61*C, "gray24", + 64*C, 64*C, 64*C, "gray25", + 66*C, 66*C, 66*C, "gray26", + 69*C, 69*C, 69*C, "gray27", + 71*C, 71*C, 71*C, "gray28", + 74*C, 74*C, 74*C, "gray29", + 8*C, 8*C, 8*C, "gray3", + 77*C, 77*C, 77*C, "gray30", + 79*C, 79*C, 79*C, "gray31", + 82*C, 82*C, 82*C, "gray32", + 84*C, 84*C, 84*C, "gray33", + 87*C, 87*C, 87*C, "gray34", + 89*C, 89*C, 89*C, "gray35", + 92*C, 92*C, 92*C, "gray36", + 94*C, 94*C, 94*C, "gray37", + 97*C, 97*C, 97*C, "gray38", + 99*C, 99*C, 99*C, "gray39", + 10*C, 10*C, 10*C, "gray4", +102*C, 102*C, 102*C, "gray40", +105*C, 105*C, 105*C, "gray41", +107*C, 107*C, 107*C, "gray42", +110*C, 110*C, 110*C, "gray43", +112*C, 112*C, 112*C, "gray44", +115*C, 115*C, 115*C, "gray45", +117*C, 117*C, 117*C, "gray46", +120*C, 120*C, 120*C, "gray47", +122*C, 122*C, 122*C, "gray48", +125*C, 125*C, 125*C, "gray49", + 13*C, 13*C, 13*C, "gray5", +127*C, 127*C, 127*C, "gray50", +130*C, 130*C, 130*C, "gray51", +133*C, 133*C, 133*C, "gray52", +135*C, 135*C, 135*C, "gray53", +138*C, 138*C, 138*C, "gray54", +140*C, 140*C, 140*C, "gray55", +143*C, 143*C, 143*C, "gray56", +145*C, 145*C, 145*C, "gray57", +148*C, 148*C, 148*C, "gray58", +150*C, 150*C, 150*C, "gray59", + 15*C, 15*C, 15*C, "gray6", +153*C, 153*C, 153*C, "gray60", +156*C, 156*C, 156*C, "gray61", +158*C, 158*C, 158*C, "gray62", +161*C, 161*C, 161*C, "gray63", +163*C, 163*C, 163*C, "gray64", +166*C, 166*C, 166*C, "gray65", +168*C, 168*C, 168*C, "gray66", +171*C, 171*C, 171*C, "gray67", +173*C, 173*C, 173*C, "gray68", +176*C, 176*C, 176*C, "gray69", + 18*C, 18*C, 18*C, "gray7", +179*C, 179*C, 179*C, "gray70", +181*C, 181*C, 181*C, "gray71", +184*C, 184*C, 184*C, "gray72", +186*C, 186*C, 186*C, "gray73", +189*C, 189*C, 189*C, "gray74", +191*C, 191*C, 191*C, "gray75", +194*C, 194*C, 194*C, "gray76", +196*C, 196*C, 196*C, "gray77", +199*C, 199*C, 199*C, "gray78", +201*C, 201*C, 201*C, "gray79", + 20*C, 20*C, 20*C, "gray8", +204*C, 204*C, 204*C, "gray80", +207*C, 207*C, 207*C, "gray81", +209*C, 209*C, 209*C, "gray82", +212*C, 212*C, 212*C, "gray83", +214*C, 214*C, 214*C, "gray84", +217*C, 217*C, 217*C, "gray85", +219*C, 219*C, 219*C, "gray86", +222*C, 222*C, 222*C, "gray87", +224*C, 224*C, 224*C, "gray88", +227*C, 227*C, 227*C, "gray89", + 23*C, 23*C, 23*C, "gray9", +229*C, 229*C, 229*C, "gray90", +232*C, 232*C, 232*C, "gray91", +235*C, 235*C, 235*C, "gray92", +237*C, 237*C, 237*C, "gray93", +240*C, 240*C, 240*C, "gray94", +242*C, 242*C, 242*C, "gray95", +245*C, 245*C, 245*C, "gray96", +247*C, 247*C, 247*C, "gray97", +250*C, 250*C, 250*C, "gray98", +252*C, 252*C, 252*C, "gray99", + 0*C, 255*C, 0*C, "green", +173*C, 255*C, 47*C, "green yellow", +0*C, 255*C, 0*C, "green1", +0*C, 238*C, 0*C, "green2", +0*C, 205*C, 0*C, "green3", +0*C, 139*C, 0*C, "green4", +173*C, 255*C, 47*C, "GreenYellow", +190*C, 190*C, 190*C, "grey", + 0*C, 0*C, 0*C, "grey0", + 3*C, 3*C, 3*C, "grey1", + 26*C, 26*C, 26*C, "grey10", +255*C, 255*C, 255*C, "grey100", + 28*C, 28*C, 28*C, "grey11", + 31*C, 31*C, 31*C, "grey12", + 33*C, 33*C, 33*C, "grey13", + 36*C, 36*C, 36*C, "grey14", + 38*C, 38*C, 38*C, "grey15", + 41*C, 41*C, 41*C, "grey16", + 43*C, 43*C, 43*C, "grey17", + 46*C, 46*C, 46*C, "grey18", + 48*C, 48*C, 48*C, "grey19", + 5*C, 5*C, 5*C, "grey2", + 51*C, 51*C, 51*C, "grey20", + 54*C, 54*C, 54*C, "grey21", + 56*C, 56*C, 56*C, "grey22", + 59*C, 59*C, 59*C, "grey23", + 61*C, 61*C, 61*C, "grey24", + 64*C, 64*C, 64*C, "grey25", + 66*C, 66*C, 66*C, "grey26", + 69*C, 69*C, 69*C, "grey27", + 71*C, 71*C, 71*C, "grey28", + 74*C, 74*C, 74*C, "grey29", + 8*C, 8*C, 8*C, "grey3", + 77*C, 77*C, 77*C, "grey30", + 79*C, 79*C, 79*C, "grey31", + 82*C, 82*C, 82*C, "grey32", + 84*C, 84*C, 84*C, "grey33", + 87*C, 87*C, 87*C, "grey34", + 89*C, 89*C, 89*C, "grey35", + 92*C, 92*C, 92*C, "grey36", + 94*C, 94*C, 94*C, "grey37", + 97*C, 97*C, 97*C, "grey38", + 99*C, 99*C, 99*C, "grey39", + 10*C, 10*C, 10*C, "grey4", +102*C, 102*C, 102*C, "grey40", +105*C, 105*C, 105*C, "grey41", +107*C, 107*C, 107*C, "grey42", +110*C, 110*C, 110*C, "grey43", +112*C, 112*C, 112*C, "grey44", +115*C, 115*C, 115*C, "grey45", +117*C, 117*C, 117*C, "grey46", +120*C, 120*C, 120*C, "grey47", +122*C, 122*C, 122*C, "grey48", +125*C, 125*C, 125*C, "grey49", + 13*C, 13*C, 13*C, "grey5", +127*C, 127*C, 127*C, "grey50", +130*C, 130*C, 130*C, "grey51", +133*C, 133*C, 133*C, "grey52", +135*C, 135*C, 135*C, "grey53", +138*C, 138*C, 138*C, "grey54", +140*C, 140*C, 140*C, "grey55", +143*C, 143*C, 143*C, "grey56", +145*C, 145*C, 145*C, "grey57", +148*C, 148*C, 148*C, "grey58", +150*C, 150*C, 150*C, "grey59", + 15*C, 15*C, 15*C, "grey6", +153*C, 153*C, 153*C, "grey60", +156*C, 156*C, 156*C, "grey61", +158*C, 158*C, 158*C, "grey62", +161*C, 161*C, 161*C, "grey63", +163*C, 163*C, 163*C, "grey64", +166*C, 166*C, 166*C, "grey65", +168*C, 168*C, 168*C, "grey66", +171*C, 171*C, 171*C, "grey67", +173*C, 173*C, 173*C, "grey68", +176*C, 176*C, 176*C, "grey69", + 18*C, 18*C, 18*C, "grey7", +179*C, 179*C, 179*C, "grey70", +181*C, 181*C, 181*C, "grey71", +184*C, 184*C, 184*C, "grey72", +186*C, 186*C, 186*C, "grey73", +189*C, 189*C, 189*C, "grey74", +191*C, 191*C, 191*C, "grey75", +194*C, 194*C, 194*C, "grey76", +196*C, 196*C, 196*C, "grey77", +199*C, 199*C, 199*C, "grey78", +201*C, 201*C, 201*C, "grey79", + 20*C, 20*C, 20*C, "grey8", +204*C, 204*C, 204*C, "grey80", +207*C, 207*C, 207*C, "grey81", +209*C, 209*C, 209*C, "grey82", +212*C, 212*C, 212*C, "grey83", +214*C, 214*C, 214*C, "grey84", +217*C, 217*C, 217*C, "grey85", +219*C, 219*C, 219*C, "grey86", +222*C, 222*C, 222*C, "grey87", +224*C, 224*C, 224*C, "grey88", +227*C, 227*C, 227*C, "grey89", + 23*C, 23*C, 23*C, "grey9", +229*C, 229*C, 229*C, "grey90", +232*C, 232*C, 232*C, "grey91", +235*C, 235*C, 235*C, "grey92", +237*C, 237*C, 237*C, "grey93", +240*C, 240*C, 240*C, "grey94", +242*C, 242*C, 242*C, "grey95", +245*C, 245*C, 245*C, "grey96", +247*C, 247*C, 247*C, "grey97", +250*C, 250*C, 250*C, "grey98", +252*C, 252*C, 252*C, "grey99", +240*C, 255*C, 240*C, "honeydew", +240*C, 255*C, 240*C, "honeydew1", +224*C, 238*C, 224*C, "honeydew2", +193*C, 205*C, 193*C, "honeydew3", +131*C, 139*C, 131*C, "honeydew4", +255*C, 105*C, 180*C, "hot pink", +255*C, 105*C, 180*C, "HotPink", +255*C, 110*C, 180*C, "HotPink1", +238*C, 106*C, 167*C, "HotPink2", +205*C, 96*C, 144*C, "HotPink3", +139*C, 58*C, 98*C, "HotPink4", +205*C, 92*C, 92*C, "indian red", +205*C, 92*C, 92*C, "IndianRed", +255*C, 106*C, 106*C, "IndianRed1", +238*C, 99*C, 99*C, "IndianRed2", +205*C, 85*C, 85*C, "IndianRed3", +139*C, 58*C, 58*C, "IndianRed4", +255*C, 255*C, 240*C, "ivory", +255*C, 255*C, 240*C, "ivory1", +238*C, 238*C, 224*C, "ivory2", +205*C, 205*C, 193*C, "ivory3", +139*C, 139*C, 131*C, "ivory4", +240*C, 230*C, 140*C, "khaki", +255*C, 246*C, 143*C, "khaki1", +238*C, 230*C, 133*C, "khaki2", +205*C, 198*C, 115*C, "khaki3", +139*C, 134*C, 78*C, "khaki4", +230*C, 230*C, 250*C, "lavender", +255*C, 240*C, 245*C, "lavender blush", +255*C, 240*C, 245*C, "LavenderBlush", +255*C, 240*C, 245*C, "LavenderBlush1", +238*C, 224*C, 229*C, "LavenderBlush2", +205*C, 193*C, 197*C, "LavenderBlush3", +139*C, 131*C, 134*C, "LavenderBlush4", +124*C, 252*C, 0*C, "lawn green", +124*C, 252*C, 0*C, "LawnGreen", +255*C, 250*C, 205*C, "lemon chiffon", +255*C, 250*C, 205*C, "LemonChiffon", +255*C, 250*C, 205*C, "LemonChiffon1", +238*C, 233*C, 191*C, "LemonChiffon2", +205*C, 201*C, 165*C, "LemonChiffon3", +139*C, 137*C, 112*C, "LemonChiffon4", +173*C, 216*C, 230*C, "light blue", +240*C, 128*C, 128*C, "light coral", +224*C, 255*C, 255*C, "light cyan", +238*C, 221*C, 130*C, "light goldenrod", +250*C, 250*C, 210*C, "light goldenrod yellow", +211*C, 211*C, 211*C, "light gray", +144*C, 238*C, 144*C, "light green", +211*C, 211*C, 211*C, "light grey", +255*C, 182*C, 193*C, "light pink", +255*C, 160*C, 122*C, "light salmon", + 32*C, 178*C, 170*C, "light sea green", +135*C, 206*C, 250*C, "light sky blue", +132*C, 112*C, 255*C, "light slate blue", +119*C, 136*C, 153*C, "light slate gray", +119*C, 136*C, 153*C, "light slate grey", +176*C, 196*C, 222*C, "light steel blue", +255*C, 255*C, 224*C, "light yellow", +173*C, 216*C, 230*C, "LightBlue", +191*C, 239*C, 255*C, "LightBlue1", +178*C, 223*C, 238*C, "LightBlue2", +154*C, 192*C, 205*C, "LightBlue3", +104*C, 131*C, 139*C, "LightBlue4", +240*C, 128*C, 128*C, "LightCoral", +224*C, 255*C, 255*C, "LightCyan", +224*C, 255*C, 255*C, "LightCyan1", +209*C, 238*C, 238*C, "LightCyan2", +180*C, 205*C, 205*C, "LightCyan3", +122*C, 139*C, 139*C, "LightCyan4", +238*C, 221*C, 130*C, "LightGoldenrod", +255*C, 236*C, 139*C, "LightGoldenrod1", +238*C, 220*C, 130*C, "LightGoldenrod2", +205*C, 190*C, 112*C, "LightGoldenrod3", +139*C, 129*C, 76*C, "LightGoldenrod4", +250*C, 250*C, 210*C, "LightGoldenrodYellow", +211*C, 211*C, 211*C, "LightGray", +144*C, 238*C, 144*C, "LightGreen", +211*C, 211*C, 211*C, "LightGrey", +255*C, 182*C, 193*C, "LightPink", +255*C, 174*C, 185*C, "LightPink1", +238*C, 162*C, 173*C, "LightPink2", +205*C, 140*C, 149*C, "LightPink3", +139*C, 95*C, 101*C, "LightPink4", +255*C, 160*C, 122*C, "LightSalmon", +255*C, 160*C, 122*C, "LightSalmon1", +238*C, 149*C, 114*C, "LightSalmon2", +205*C, 129*C, 98*C, "LightSalmon3", +139*C, 87*C, 66*C, "LightSalmon4", + 32*C, 178*C, 170*C, "LightSeaGreen", +135*C, 206*C, 250*C, "LightSkyBlue", +176*C, 226*C, 255*C, "LightSkyBlue1", +164*C, 211*C, 238*C, "LightSkyBlue2", +141*C, 182*C, 205*C, "LightSkyBlue3", + 96*C, 123*C, 139*C, "LightSkyBlue4", +132*C, 112*C, 255*C, "LightSlateBlue", +119*C, 136*C, 153*C, "LightSlateGray", +119*C, 136*C, 153*C, "LightSlateGrey", +176*C, 196*C, 222*C, "LightSteelBlue", +202*C, 225*C, 255*C, "LightSteelBlue1", +188*C, 210*C, 238*C, "LightSteelBlue2", +162*C, 181*C, 205*C, "LightSteelBlue3", +110*C, 123*C, 139*C, "LightSteelBlue4", +255*C, 255*C, 224*C, "LightYellow", +255*C, 255*C, 224*C, "LightYellow1", +238*C, 238*C, 209*C, "LightYellow2", +205*C, 205*C, 180*C, "LightYellow3", +139*C, 139*C, 122*C, "LightYellow4", + 50*C, 205*C, 50*C, "lime green", + 50*C, 205*C, 50*C, "LimeGreen", +250*C, 240*C, 230*C, "linen", +255*C, 0*C, 255*C, "magenta", +255*C, 0*C, 255*C, "magenta1", +238*C, 0*C, 238*C, "magenta2", +205*C, 0*C, 205*C, "magenta3", +139*C, 0*C, 139*C, "magenta4", +176*C, 48*C, 96*C, "maroon", +255*C, 52*C, 179*C, "maroon1", +238*C, 48*C, 167*C, "maroon2", +205*C, 41*C, 144*C, "maroon3", +139*C, 28*C, 98*C, "maroon4", +102*C, 205*C, 170*C, "medium aquamarine", + 0*C, 0*C, 205*C, "medium blue", +186*C, 85*C, 211*C, "medium orchid", +147*C, 112*C, 219*C, "medium purple", + 60*C, 179*C, 113*C, "medium sea green", +123*C, 104*C, 238*C, "medium slate blue", + 0*C, 250*C, 154*C, "medium spring green", + 72*C, 209*C, 204*C, "medium turquoise", +199*C, 21*C, 133*C, "medium violet red", +102*C, 205*C, 170*C, "MediumAquamarine", + 0*C, 0*C, 205*C, "MediumBlue", +186*C, 85*C, 211*C, "MediumOrchid", +224*C, 102*C, 255*C, "MediumOrchid1", +209*C, 95*C, 238*C, "MediumOrchid2", +180*C, 82*C, 205*C, "MediumOrchid3", +122*C, 55*C, 139*C, "MediumOrchid4", +147*C, 112*C, 219*C, "MediumPurple", +171*C, 130*C, 255*C, "MediumPurple1", +159*C, 121*C, 238*C, "MediumPurple2", +137*C, 104*C, 205*C, "MediumPurple3", + 93*C, 71*C, 139*C, "MediumPurple4", + 60*C, 179*C, 113*C, "MediumSeaGreen", +123*C, 104*C, 238*C, "MediumSlateBlue", + 0*C, 250*C, 154*C, "MediumSpringGreen", + 72*C, 209*C, 204*C, "MediumTurquoise", +199*C, 21*C, 133*C, "MediumVioletRed", + 25*C, 25*C, 112*C, "midnight blue", + 25*C, 25*C, 112*C, "MidnightBlue", +245*C, 255*C, 250*C, "mint cream", +245*C, 255*C, 250*C, "MintCream", +255*C, 228*C, 225*C, "misty rose", +255*C, 228*C, 225*C, "MistyRose", +255*C, 228*C, 225*C, "MistyRose1", +238*C, 213*C, 210*C, "MistyRose2", +205*C, 183*C, 181*C, "MistyRose3", +139*C, 125*C, 123*C, "MistyRose4", +255*C, 228*C, 181*C, "moccasin", +255*C, 222*C, 173*C, "navajo white", +255*C, 222*C, 173*C, "NavajoWhite", +255*C, 222*C, 173*C, "NavajoWhite1", +238*C, 207*C, 161*C, "NavajoWhite2", +205*C, 179*C, 139*C, "NavajoWhite3", +139*C, 121*C, 94*C, "NavajoWhite4", + 0*C, 0*C, 128*C, "navy", + 0*C, 0*C, 128*C, "navy blue", + 0*C, 0*C, 128*C, "NavyBlue", +253*C, 245*C, 230*C, "old lace", +253*C, 245*C, 230*C, "OldLace", +107*C, 142*C, 35*C, "olive drab", +107*C, 142*C, 35*C, "OliveDrab", +192*C, 255*C, 62*C, "OliveDrab1", +179*C, 238*C, 58*C, "OliveDrab2", +154*C, 205*C, 50*C, "OliveDrab3", +105*C, 139*C, 34*C, "OliveDrab4", +255*C, 165*C, 0*C, "orange", +255*C, 69*C, 0*C, "orange red", +255*C, 165*C, 0*C, "orange1", +238*C, 154*C, 0*C, "orange2", +205*C, 133*C, 0*C, "orange3", +139*C, 90*C, 0*C, "orange4", +255*C, 69*C, 0*C, "OrangeRed", +255*C, 69*C, 0*C, "OrangeRed1", +238*C, 64*C, 0*C, "OrangeRed2", +205*C, 55*C, 0*C, "OrangeRed3", +139*C, 37*C, 0*C, "OrangeRed4", +218*C, 112*C, 214*C, "orchid", +255*C, 131*C, 250*C, "orchid1", +238*C, 122*C, 233*C, "orchid2", +205*C, 105*C, 201*C, "orchid3", +139*C, 71*C, 137*C, "orchid4", +238*C, 232*C, 170*C, "pale goldenrod", +152*C, 251*C, 152*C, "pale green", +175*C, 238*C, 238*C, "pale turquoise", +219*C, 112*C, 147*C, "pale violet red", +238*C, 232*C, 170*C, "PaleGoldenrod", +152*C, 251*C, 152*C, "PaleGreen", +154*C, 255*C, 154*C, "PaleGreen1", +144*C, 238*C, 144*C, "PaleGreen2", +124*C, 205*C, 124*C, "PaleGreen3", +84*C, 139*C, 84*C, "PaleGreen4", +175*C, 238*C, 238*C, "PaleTurquoise", +187*C, 255*C, 255*C, "PaleTurquoise1", +174*C, 238*C, 238*C, "PaleTurquoise2", +150*C, 205*C, 205*C, "PaleTurquoise3", +102*C, 139*C, 139*C, "PaleTurquoise4", +219*C, 112*C, 147*C, "PaleVioletRed", +255*C, 130*C, 171*C, "PaleVioletRed1", +238*C, 121*C, 159*C, "PaleVioletRed2", +205*C, 104*C, 137*C, "PaleVioletRed3", +139*C, 71*C, 93*C, "PaleVioletRed4", +255*C, 239*C, 213*C, "papaya whip", +255*C, 239*C, 213*C, "PapayaWhip", +255*C, 218*C, 185*C, "peach puff", +255*C, 218*C, 185*C, "PeachPuff", +255*C, 218*C, 185*C, "PeachPuff1", +238*C, 203*C, 173*C, "PeachPuff2", +205*C, 175*C, 149*C, "PeachPuff3", +139*C, 119*C, 101*C, "PeachPuff4", +205*C, 133*C, 63*C, "peru", +255*C, 192*C, 203*C, "pink", +255*C, 181*C, 197*C, "pink1", +238*C, 169*C, 184*C, "pink2", +205*C, 145*C, 158*C, "pink3", +139*C, 99*C, 108*C, "pink4", +221*C, 160*C, 221*C, "plum", +255*C, 187*C, 255*C, "plum1", +238*C, 174*C, 238*C, "plum2", +205*C, 150*C, 205*C, "plum3", +139*C, 102*C, 139*C, "plum4", +176*C, 224*C, 230*C, "powder blue", +176*C, 224*C, 230*C, "PowderBlue", +160*C, 32*C, 240*C, "purple", +155*C, 48*C, 255*C, "purple1", +145*C, 44*C, 238*C, "purple2", +125*C, 38*C, 205*C, "purple3", + 85*C, 26*C, 139*C, "purple4", +255*C, 0*C, 0*C, "red", +255*C, 0*C, 0*C, "red1", +238*C, 0*C, 0*C, "red2", +205*C, 0*C, 0*C, "red3", +139*C, 0*C, 0*C, "red4", +188*C, 143*C, 143*C, "rosy brown", +188*C, 143*C, 143*C, "RosyBrown", +255*C, 193*C, 193*C, "RosyBrown1", +238*C, 180*C, 180*C, "RosyBrown2", +205*C, 155*C, 155*C, "RosyBrown3", +139*C, 105*C, 105*C, "RosyBrown4", + 65*C, 105*C, 225*C, "royal blue", + 65*C, 105*C, 225*C, "RoyalBlue", + 72*C, 118*C, 255*C, "RoyalBlue1", + 67*C, 110*C, 238*C, "RoyalBlue2", + 58*C, 95*C, 205*C, "RoyalBlue3", + 39*C, 64*C, 139*C, "RoyalBlue4", +139*C, 69*C, 19*C, "saddle brown", +139*C, 69*C, 19*C, "SaddleBrown", +250*C, 128*C, 114*C, "salmon", +255*C, 140*C, 105*C, "salmon1", +238*C, 130*C, 98*C, "salmon2", +205*C, 112*C, 84*C, "salmon3", +139*C, 76*C, 57*C, "salmon4", +244*C, 164*C, 96*C, "sandy brown", +244*C, 164*C, 96*C, "SandyBrown", + 46*C, 139*C, 87*C, "sea green", + 46*C, 139*C, 87*C, "SeaGreen", + 84*C, 255*C, 159*C, "SeaGreen1", + 78*C, 238*C, 148*C, "SeaGreen2", + 67*C, 205*C, 128*C, "SeaGreen3", +46*C, 139*C, 87*C, "SeaGreen4", +255*C, 245*C, 238*C, "seashell", +255*C, 245*C, 238*C, "seashell1", +238*C, 229*C, 222*C, "seashell2", +205*C, 197*C, 191*C, "seashell3", +139*C, 134*C, 130*C, "seashell4", +160*C, 82*C, 45*C, "sienna", +255*C, 130*C, 71*C, "sienna1", +238*C, 121*C, 66*C, "sienna2", +205*C, 104*C, 57*C, "sienna3", +139*C, 71*C, 38*C, "sienna4", +135*C, 206*C, 235*C, "sky blue", +135*C, 206*C, 235*C, "SkyBlue", +135*C, 206*C, 255*C, "SkyBlue1", +126*C, 192*C, 238*C, "SkyBlue2", +108*C, 166*C, 205*C, "SkyBlue3", + 74*C, 112*C, 139*C, "SkyBlue4", +106*C, 90*C, 205*C, "slate blue", +112*C, 128*C, 144*C, "slate gray", +112*C, 128*C, 144*C, "slate grey", +106*C, 90*C, 205*C, "SlateBlue", +131*C, 111*C, 255*C, "SlateBlue1", +122*C, 103*C, 238*C, "SlateBlue2", +105*C, 89*C, 205*C, "SlateBlue3", + 71*C, 60*C, 139*C, "SlateBlue4", +112*C, 128*C, 144*C, "SlateGray", +198*C, 226*C, 255*C, "SlateGray1", +185*C, 211*C, 238*C, "SlateGray2", +159*C, 182*C, 205*C, "SlateGray3", +108*C, 123*C, 139*C, "SlateGray4", +112*C, 128*C, 144*C, "SlateGrey", +255*C, 250*C, 250*C, "snow", +255*C, 250*C, 250*C, "snow1", +238*C, 233*C, 233*C, "snow2", +205*C, 201*C, 201*C, "snow3", +139*C, 137*C, 137*C, "snow4", + 0*C, 255*C, 127*C, "spring green", + 0*C, 255*C, 127*C, "SpringGreen", + 0*C, 255*C, 127*C, "SpringGreen1", + 0*C, 238*C, 118*C, "SpringGreen2", + 0*C, 205*C, 102*C, "SpringGreen3", +0*C, 139*C, 69*C, "SpringGreen4", + 70*C, 130*C, 180*C, "steel blue", + 70*C, 130*C, 180*C, "SteelBlue", + 99*C, 184*C, 255*C, "SteelBlue1", + 92*C, 172*C, 238*C, "SteelBlue2", + 79*C, 148*C, 205*C, "SteelBlue3", + 54*C, 100*C, 139*C, "SteelBlue4", +210*C, 180*C, 140*C, "tan", +255*C, 165*C, 79*C, "tan1", +238*C, 154*C, 73*C, "tan2", +205*C, 133*C, 63*C, "tan3", +139*C, 90*C, 43*C, "tan4", +216*C, 191*C, 216*C, "thistle", +255*C, 225*C, 255*C, "thistle1", +238*C, 210*C, 238*C, "thistle2", +205*C, 181*C, 205*C, "thistle3", +139*C, 123*C, 139*C, "thistle4", +255*C, 99*C, 71*C, "tomato", +255*C, 99*C, 71*C, "tomato1", +238*C, 92*C, 66*C, "tomato2", +205*C, 79*C, 57*C, "tomato3", +139*C, 54*C, 38*C, "tomato4", + 64*C, 224*C, 208*C, "turquoise", + 0*C, 245*C, 255*C, "turquoise1", + 0*C, 229*C, 238*C, "turquoise2", + 0*C, 197*C, 205*C, "turquoise3", + 0*C, 134*C, 139*C, "turquoise4", +238*C, 130*C, 238*C, "violet", +208*C, 32*C, 144*C, "violet red", +208*C, 32*C, 144*C, "VioletRed", +255*C, 62*C, 150*C, "VioletRed1", +238*C, 58*C, 140*C, "VioletRed2", +205*C, 50*C, 120*C, "VioletRed3", +139*C, 34*C, 82*C, "VioletRed4", +245*C, 222*C, 179*C, "wheat", +255*C, 231*C, 186*C, "wheat1", +238*C, 216*C, 174*C, "wheat2", +205*C, 186*C, 150*C, "wheat3", +139*C, 126*C, 102*C, "wheat4", +255*C, 255*C, 255*C, "white", +245*C, 245*C, 245*C, "white smoke", +245*C, 245*C, 245*C, "WhiteSmoke", +255*C, 255*C, 0*C, "yellow", +154*C, 205*C, 50*C, "yellow green", +255*C, 255*C, 0*C, "yellow1", +238*C, 238*C, 0*C, "yellow2", +205*C, 205*C, 0*C, "yellow3", +139*C, 139*C, 0*C, "yellow4", +154*C, 205*C, 50*C, "YellowGreen", +}; + +#undef C + +#define NUM_KD_COLORS (sizeof (KdColors) / sizeof (KdColors[0])) + +Bool +OsInitColors() +{ + return TRUE; +} + +Bool +OsLookupColor(int screen, + char *s_name, + unsigned int len, + unsigned short *pred, + unsigned short *pgreen, + unsigned short *pblue) +{ + KdNamedColor *c; + unsigned char *name = (unsigned char *) s_name; + int low, mid, high; + int r; + + low = 0; + high = NUM_KD_COLORS; + while (high - low > 0) + { + mid = (low + high) / 2; + c = &KdColors[mid]; + r = KdStrCaseCmp (c->name, name, len); + if (r == 0) + { + *pred = c->red; + *pgreen = c->green; + *pblue = c->blue; + return TRUE; + } + if (r < 0) + { + if (high == mid) + break; + high = mid; + } + else + { + if (low == mid) + break; + low = mid; + } + } + return FALSE; +} |