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