912 lines
26 KiB
C
912 lines
26 KiB
C
/*
|
||
* xcolors.c --
|
||
*
|
||
* This file contains the routines used to map from X color
|
||
* names to RGB and pixel values.
|
||
*
|
||
* Copyright (c) 1996 by Sun Microsystems, Inc.
|
||
*
|
||
* See the file "license.terms" for information on usage and redistribution
|
||
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||
*
|
||
* SCCS: @(#) xcolors.c 1.6 97/09/02 09:41:50
|
||
*/
|
||
|
||
#include <tkInt.h>
|
||
|
||
/*
|
||
* Define an array that defines the mapping from color names to RGB values.
|
||
* Note that this array must be kept sorted alphabetically so that the
|
||
* binary search used in XParseColor will succeed.
|
||
*/
|
||
|
||
typedef struct {
|
||
char *name;
|
||
unsigned char red;
|
||
unsigned char green;
|
||
unsigned char blue;
|
||
} XColorEntry;
|
||
|
||
static XColorEntry xColors[] = {
|
||
"alice blue", 240, 248, 255,
|
||
"AliceBlue", 240, 248, 255,
|
||
"antique white", 250, 235, 215,
|
||
"AntiqueWhite", 250, 235, 215,
|
||
"AntiqueWhite1", 255, 239, 219,
|
||
"AntiqueWhite2", 238, 223, 204,
|
||
"AntiqueWhite3", 205, 192, 176,
|
||
"AntiqueWhite4", 139, 131, 120,
|
||
"aquamarine", 127, 255, 212,
|
||
"aquamarine1", 127, 255, 212,
|
||
"aquamarine2", 118, 238, 198,
|
||
"aquamarine3", 102, 205, 170,
|
||
"aquamarine4", 69, 139, 116,
|
||
"azure", 240, 255, 255,
|
||
"azure1", 240, 255, 255,
|
||
"azure2", 224, 238, 238,
|
||
"azure3", 193, 205, 205,
|
||
"azure4", 131, 139, 139,
|
||
"beige", 245, 245, 220,
|
||
"bisque", 255, 228, 196,
|
||
"bisque1", 255, 228, 196,
|
||
"bisque2", 238, 213, 183,
|
||
"bisque3", 205, 183, 158,
|
||
"bisque4", 139, 125, 107,
|
||
"black", 0, 0, 0,
|
||
"blanched almond", 255, 235, 205,
|
||
"BlanchedAlmond", 255, 235, 205,
|
||
"blue", 0, 0, 255,
|
||
"blue violet", 138, 43, 226,
|
||
"blue1", 0, 0, 255,
|
||
"blue2", 0, 0, 238,
|
||
"blue3", 0, 0, 205,
|
||
"blue4", 0, 0, 139,
|
||
"BlueViolet", 138, 43, 226,
|
||
"brown", 165, 42, 42,
|
||
"brown1", 255, 64, 64,
|
||
"brown2", 238, 59, 59,
|
||
"brown3", 205, 51, 51,
|
||
"brown4", 139, 35, 35,
|
||
"burlywood", 222, 184, 135,
|
||
"burlywood1", 255, 211, 155,
|
||
"burlywood2", 238, 197, 145,
|
||
"burlywood3", 205, 170, 125,
|
||
"burlywood4", 139, 115, 85,
|
||
"cadet blue", 95, 158, 160,
|
||
"CadetBlue", 95, 158, 160,
|
||
"CadetBlue1", 152, 245, 255,
|
||
"CadetBlue2", 142, 229, 238,
|
||
"CadetBlue3", 122, 197, 205,
|
||
"CadetBlue4", 83, 134, 139,
|
||
"chartreuse", 127, 255, 0,
|
||
"chartreuse1", 127, 255, 0,
|
||
"chartreuse2", 118, 238, 0,
|
||
"chartreuse3", 102, 205, 0,
|
||
"chartreuse4", 69, 139, 0,
|
||
"chocolate", 210, 105, 30,
|
||
"chocolate1", 255, 127, 36,
|
||
"chocolate2", 238, 118, 33,
|
||
"chocolate3", 205, 102, 29,
|
||
"chocolate4", 139, 69, 19,
|
||
"coral", 255, 127, 80,
|
||
"coral1", 255, 114, 86,
|
||
"coral2", 238, 106, 80,
|
||
"coral3", 205, 91, 69,
|
||
"coral4", 139, 62, 47,
|
||
"cornflower blue", 100, 149, 237,
|
||
"CornflowerBlue", 100, 149, 237,
|
||
"cornsilk", 255, 248, 220,
|
||
"cornsilk1", 255, 248, 220,
|
||
"cornsilk2", 238, 232, 205,
|
||
"cornsilk3", 205, 200, 177,
|
||
"cornsilk4", 139, 136, 120,
|
||
"cyan", 0, 255, 255,
|
||
"cyan1", 0, 255, 255,
|
||
"cyan2", 0, 238, 238,
|
||
"cyan3", 0, 205, 205,
|
||
"cyan4", 0, 139, 139,
|
||
"dark blue", 0, 0, 139,
|
||
"dark cyan", 0, 139, 139,
|
||
"dark goldenrod", 184, 134, 11,
|
||
"dark gray", 169, 169, 169,
|
||
"dark green", 0, 100, 0,
|
||
"dark grey", 169, 169, 169,
|
||
"dark khaki", 189, 183, 107,
|
||
"dark magenta", 139, 0, 139,
|
||
"dark olive green", 85, 107, 47,
|
||
"dark orange", 255, 140, 0,
|
||
"dark orchid", 153, 50, 204,
|
||
"dark red", 139, 0, 0,
|
||
"dark salmon", 233, 150, 122,
|
||
"dark sea green", 143, 188, 143,
|
||
"dark slate blue", 72, 61, 139,
|
||
"dark slate gray", 47, 79, 79,
|
||
"dark slate grey", 47, 79, 79,
|
||
"dark turquoise", 0, 206, 209,
|
||
"dark violet", 148, 0, 211,
|
||
"DarkBlue", 0, 0, 139,
|
||
"DarkCyan", 0, 139, 139,
|
||
"DarkGoldenrod", 184, 134, 11,
|
||
"DarkGoldenrod1", 255, 185, 15,
|
||
"DarkGoldenrod2", 238, 173, 14,
|
||
"DarkGoldenrod3", 205, 149, 12,
|
||
"DarkGoldenrod4", 139, 101, 8,
|
||
"DarkGray", 169, 169, 169,
|
||
"DarkGreen", 0, 100, 0,
|
||
"DarkGrey", 169, 169, 169,
|
||
"DarkKhaki", 189, 183, 107,
|
||
"DarkMagenta", 139, 0, 139,
|
||
"DarkOliveGreen", 85, 107, 47,
|
||
"DarkOliveGreen1", 202, 255, 112,
|
||
"DarkOliveGreen2", 188, 238, 104,
|
||
"DarkOliveGreen3", 162, 205, 90,
|
||
"DarkOliveGreen4", 110, 139, 61,
|
||
"DarkOrange", 255, 140, 0,
|
||
"DarkOrange1", 255, 127, 0,
|
||
"DarkOrange2", 238, 118, 0,
|
||
"DarkOrange3", 205, 102, 0,
|
||
"DarkOrange4", 139, 69, 0,
|
||
"DarkOrchid", 153, 50, 204,
|
||
"DarkOrchid1", 191, 62, 255,
|
||
"DarkOrchid2", 178, 58, 238,
|
||
"DarkOrchid3", 154, 50, 205,
|
||
"DarkOrchid4", 104, 34, 139,
|
||
"DarkRed", 139, 0, 0,
|
||
"DarkSalmon", 233, 150, 122,
|
||
"DarkSeaGreen", 143, 188, 143,
|
||
"DarkSeaGreen1", 193, 255, 193,
|
||
"DarkSeaGreen2", 180, 238, 180,
|
||
"DarkSeaGreen3", 155, 205, 155,
|
||
"DarkSeaGreen4", 105, 139, 105,
|
||
"DarkSlateBlue", 72, 61, 139,
|
||
"DarkSlateGray", 47, 79, 79,
|
||
"DarkSlateGray1", 151, 255, 255,
|
||
"DarkSlateGray2", 141, 238, 238,
|
||
"DarkSlateGray3", 121, 205, 205,
|
||
"DarkSlateGray4", 82, 139, 139,
|
||
"DarkSlateGrey", 47, 79, 79,
|
||
"DarkTurquoise", 0, 206, 209,
|
||
"DarkViolet", 148, 0, 211,
|
||
"deep pink", 255, 20, 147,
|
||
"deep sky blue", 0, 191, 255,
|
||
"DeepPink", 255, 20, 147,
|
||
"DeepPink1", 255, 20, 147,
|
||
"DeepPink2", 238, 18, 137,
|
||
"DeepPink3", 205, 16, 118,
|
||
"DeepPink4", 139, 10, 80,
|
||
"DeepSkyBlue", 0, 191, 255,
|
||
"DeepSkyBlue1", 0, 191, 255,
|
||
"DeepSkyBlue2", 0, 178, 238,
|
||
"DeepSkyBlue3", 0, 154, 205,
|
||
"DeepSkyBlue4", 0, 104, 139,
|
||
"dim gray", 105, 105, 105,
|
||
"dim grey", 105, 105, 105,
|
||
"DimGray", 105, 105, 105,
|
||
"DimGrey", 105, 105, 105,
|
||
"dodger blue", 30, 144, 255,
|
||
"DodgerBlue", 30, 144, 255,
|
||
"DodgerBlue1", 30, 144, 255,
|
||
"DodgerBlue2", 28, 134, 238,
|
||
"DodgerBlue3", 24, 116, 205,
|
||
"DodgerBlue4", 16, 78, 139,
|
||
"firebrick", 178, 34, 34,
|
||
"firebrick1", 255, 48, 48,
|
||
"firebrick2", 238, 44, 44,
|
||
"firebrick3", 205, 38, 38,
|
||
"firebrick4", 139, 26, 26,
|
||
"floral white", 255, 250, 240,
|
||
"FloralWhite", 255, 250, 240,
|
||
"forest green", 34, 139, 34,
|
||
"ForestGreen", 34, 139, 34,
|
||
"gainsboro", 220, 220, 220,
|
||
"ghost white", 248, 248, 255,
|
||
"GhostWhite", 248, 248, 255,
|
||
"gold", 255, 215, 0,
|
||
"gold1", 255, 215, 0,
|
||
"gold2", 238, 201, 0,
|
||
"gold3", 205, 173, 0,
|
||
"gold4", 139, 117, 0,
|
||
"goldenrod", 218, 165, 32,
|
||
"goldenrod1", 255, 193, 37,
|
||
"goldenrod2", 238, 180, 34,
|
||
"goldenrod3", 205, 155, 29,
|
||
"goldenrod4", 139, 105, 20,
|
||
"gray", 190, 190, 190,
|
||
"gray0", 0, 0, 0,
|
||
"gray1", 3, 3, 3,
|
||
"gray10", 26, 26, 26,
|
||
"gray100", 255, 255, 255,
|
||
"gray11", 28, 28, 28,
|
||
"gray12", 31, 31, 31,
|
||
"gray13", 33, 33, 33,
|
||
"gray14", 36, 36, 36,
|
||
"gray15", 38, 38, 38,
|
||
"gray16", 41, 41, 41,
|
||
"gray17", 43, 43, 43,
|
||
"gray18", 46, 46, 46,
|
||
"gray19", 48, 48, 48,
|
||
"gray2", 5, 5, 5,
|
||
"gray20", 51, 51, 51,
|
||
"gray21", 54, 54, 54,
|
||
"gray22", 56, 56, 56,
|
||
"gray23", 59, 59, 59,
|
||
"gray24", 61, 61, 61,
|
||
"gray25", 64, 64, 64,
|
||
"gray26", 66, 66, 66,
|
||
"gray27", 69, 69, 69,
|
||
"gray28", 71, 71, 71,
|
||
"gray29", 74, 74, 74,
|
||
"gray3", 8, 8, 8,
|
||
"gray30", 77, 77, 77,
|
||
"gray31", 79, 79, 79,
|
||
"gray32", 82, 82, 82,
|
||
"gray33", 84, 84, 84,
|
||
"gray34", 87, 87, 87,
|
||
"gray35", 89, 89, 89,
|
||
"gray36", 92, 92, 92,
|
||
"gray37", 94, 94, 94,
|
||
"gray38", 97, 97, 97,
|
||
"gray39", 99, 99, 99,
|
||
"gray4", 10, 10, 10,
|
||
"gray40", 102, 102, 102,
|
||
"gray41", 105, 105, 105,
|
||
"gray42", 107, 107, 107,
|
||
"gray43", 110, 110, 110,
|
||
"gray44", 112, 112, 112,
|
||
"gray45", 115, 115, 115,
|
||
"gray46", 117, 117, 117,
|
||
"gray47", 120, 120, 120,
|
||
"gray48", 122, 122, 122,
|
||
"gray49", 125, 125, 125,
|
||
"gray5", 13, 13, 13,
|
||
"gray50", 127, 127, 127,
|
||
"gray51", 130, 130, 130,
|
||
"gray52", 133, 133, 133,
|
||
"gray53", 135, 135, 135,
|
||
"gray54", 138, 138, 138,
|
||
"gray55", 140, 140, 140,
|
||
"gray56", 143, 143, 143,
|
||
"gray57", 145, 145, 145,
|
||
"gray58", 148, 148, 148,
|
||
"gray59", 150, 150, 150,
|
||
"gray6", 15, 15, 15,
|
||
"gray60", 153, 153, 153,
|
||
"gray61", 156, 156, 156,
|
||
"gray62", 158, 158, 158,
|
||
"gray63", 161, 161, 161,
|
||
"gray64", 163, 163, 163,
|
||
"gray65", 166, 166, 166,
|
||
"gray66", 168, 168, 168,
|
||
"gray67", 171, 171, 171,
|
||
"gray68", 173, 173, 173,
|
||
"gray69", 176, 176, 176,
|
||
"gray7", 18, 18, 18,
|
||
"gray70", 179, 179, 179,
|
||
"gray71", 181, 181, 181,
|
||
"gray72", 184, 184, 184,
|
||
"gray73", 186, 186, 186,
|
||
"gray74", 189, 189, 189,
|
||
"gray75", 191, 191, 191,
|
||
"gray76", 194, 194, 194,
|
||
"gray77", 196, 196, 196,
|
||
"gray78", 199, 199, 199,
|
||
"gray79", 201, 201, 201,
|
||
"gray8", 20, 20, 20,
|
||
"gray80", 204, 204, 204,
|
||
"gray81", 207, 207, 207,
|
||
"gray82", 209, 209, 209,
|
||
"gray83", 212, 212, 212,
|
||
"gray84", 214, 214, 214,
|
||
"gray85", 217, 217, 217,
|
||
"gray86", 219, 219, 219,
|
||
"gray87", 222, 222, 222,
|
||
"gray88", 224, 224, 224,
|
||
"gray89", 227, 227, 227,
|
||
"gray9", 23, 23, 23,
|
||
"gray90", 229, 229, 229,
|
||
"gray91", 232, 232, 232,
|
||
"gray92", 235, 235, 235,
|
||
"gray93", 237, 237, 237,
|
||
"gray94", 240, 240, 240,
|
||
"gray95", 242, 242, 242,
|
||
"gray96", 245, 245, 245,
|
||
"gray97", 247, 247, 247,
|
||
"gray98", 250, 250, 250,
|
||
"gray99", 252, 252, 252,
|
||
"green", 0, 255, 0,
|
||
"green yellow", 173, 255, 47,
|
||
"green1", 0, 255, 0,
|
||
"green2", 0, 238, 0,
|
||
"green3", 0, 205, 0,
|
||
"green4", 0, 139, 0,
|
||
"GreenYellow", 173, 255, 47,
|
||
"grey", 190, 190, 190,
|
||
"grey0", 0, 0, 0,
|
||
"grey1", 3, 3, 3,
|
||
"grey10", 26, 26, 26,
|
||
"grey100", 255, 255, 255,
|
||
"grey11", 28, 28, 28,
|
||
"grey12", 31, 31, 31,
|
||
"grey13", 33, 33, 33,
|
||
"grey14", 36, 36, 36,
|
||
"grey15", 38, 38, 38,
|
||
"grey16", 41, 41, 41,
|
||
"grey17", 43, 43, 43,
|
||
"grey18", 46, 46, 46,
|
||
"grey19", 48, 48, 48,
|
||
"grey2", 5, 5, 5,
|
||
"grey20", 51, 51, 51,
|
||
"grey21", 54, 54, 54,
|
||
"grey22", 56, 56, 56,
|
||
"grey23", 59, 59, 59,
|
||
"grey24", 61, 61, 61,
|
||
"grey25", 64, 64, 64,
|
||
"grey26", 66, 66, 66,
|
||
"grey27", 69, 69, 69,
|
||
"grey28", 71, 71, 71,
|
||
"grey29", 74, 74, 74,
|
||
"grey3", 8, 8, 8,
|
||
"grey30", 77, 77, 77,
|
||
"grey31", 79, 79, 79,
|
||
"grey32", 82, 82, 82,
|
||
"grey33", 84, 84, 84,
|
||
"grey34", 87, 87, 87,
|
||
"grey35", 89, 89, 89,
|
||
"grey36", 92, 92, 92,
|
||
"grey37", 94, 94, 94,
|
||
"grey38", 97, 97, 97,
|
||
"grey39", 99, 99, 99,
|
||
"grey4", 10, 10, 10,
|
||
"grey40", 102, 102, 102,
|
||
"grey41", 105, 105, 105,
|
||
"grey42", 107, 107, 107,
|
||
"grey43", 110, 110, 110,
|
||
"grey44", 112, 112, 112,
|
||
"grey45", 115, 115, 115,
|
||
"grey46", 117, 117, 117,
|
||
"grey47", 120, 120, 120,
|
||
"grey48", 122, 122, 122,
|
||
"grey49", 125, 125, 125,
|
||
"grey5", 13, 13, 13,
|
||
"grey50", 127, 127, 127,
|
||
"grey51", 130, 130, 130,
|
||
"grey52", 133, 133, 133,
|
||
"grey53", 135, 135, 135,
|
||
"grey54", 138, 138, 138,
|
||
"grey55", 140, 140, 140,
|
||
"grey56", 143, 143, 143,
|
||
"grey57", 145, 145, 145,
|
||
"grey58", 148, 148, 148,
|
||
"grey59", 150, 150, 150,
|
||
"grey6", 15, 15, 15,
|
||
"grey60", 153, 153, 153,
|
||
"grey61", 156, 156, 156,
|
||
"grey62", 158, 158, 158,
|
||
"grey63", 161, 161, 161,
|
||
"grey64", 163, 163, 163,
|
||
"grey65", 166, 166, 166,
|
||
"grey66", 168, 168, 168,
|
||
"grey67", 171, 171, 171,
|
||
"grey68", 173, 173, 173,
|
||
"grey69", 176, 176, 176,
|
||
"grey7", 18, 18, 18,
|
||
"grey70", 179, 179, 179,
|
||
"grey71", 181, 181, 181,
|
||
"grey72", 184, 184, 184,
|
||
"grey73", 186, 186, 186,
|
||
"grey74", 189, 189, 189,
|
||
"grey75", 191, 191, 191,
|
||
"grey76", 194, 194, 194,
|
||
"grey77", 196, 196, 196,
|
||
"grey78", 199, 199, 199,
|
||
"grey79", 201, 201, 201,
|
||
"grey8", 20, 20, 20,
|
||
"grey80", 204, 204, 204,
|
||
"grey81", 207, 207, 207,
|
||
"grey82", 209, 209, 209,
|
||
"grey83", 212, 212, 212,
|
||
"grey84", 214, 214, 214,
|
||
"grey85", 217, 217, 217,
|
||
"grey86", 219, 219, 219,
|
||
"grey87", 222, 222, 222,
|
||
"grey88", 224, 224, 224,
|
||
"grey89", 227, 227, 227,
|
||
"grey9", 23, 23, 23,
|
||
"grey90", 229, 229, 229,
|
||
"grey91", 232, 232, 232,
|
||
"grey92", 235, 235, 235,
|
||
"grey93", 237, 237, 237,
|
||
"grey94", 240, 240, 240,
|
||
"grey95", 242, 242, 242,
|
||
"grey96", 245, 245, 245,
|
||
"grey97", 247, 247, 247,
|
||
"grey98", 250, 250, 250,
|
||
"grey99", 252, 252, 252,
|
||
"honeydew", 240, 255, 240,
|
||
"honeydew1", 240, 255, 240,
|
||
"honeydew2", 224, 238, 224,
|
||
"honeydew3", 193, 205, 193,
|
||
"honeydew4", 131, 139, 131,
|
||
"hot pink", 255, 105, 180,
|
||
"HotPink", 255, 105, 180,
|
||
"HotPink1", 255, 110, 180,
|
||
"HotPink2", 238, 106, 167,
|
||
"HotPink3", 205, 96, 144,
|
||
"HotPink4", 139, 58, 98,
|
||
"indian red", 205, 92, 92,
|
||
"IndianRed", 205, 92, 92,
|
||
"IndianRed1", 255, 106, 106,
|
||
"IndianRed2", 238, 99, 99,
|
||
"IndianRed3", 205, 85, 85,
|
||
"IndianRed4", 139, 58, 58,
|
||
"ivory", 255, 255, 240,
|
||
"ivory1", 255, 255, 240,
|
||
"ivory2", 238, 238, 224,
|
||
"ivory3", 205, 205, 193,
|
||
"ivory4", 139, 139, 131,
|
||
"khaki", 240, 230, 140,
|
||
"khaki1", 255, 246, 143,
|
||
"khaki2", 238, 230, 133,
|
||
"khaki3", 205, 198, 115,
|
||
"khaki4", 139, 134, 78,
|
||
"lavender", 230, 230, 250,
|
||
"lavender blush", 255, 240, 245,
|
||
"LavenderBlush", 255, 240, 245,
|
||
"LavenderBlush1", 255, 240, 245,
|
||
"LavenderBlush2", 238, 224, 229,
|
||
"LavenderBlush3", 205, 193, 197,
|
||
"LavenderBlush4", 139, 131, 134,
|
||
"lawn green", 124, 252, 0,
|
||
"LawnGreen", 124, 252, 0,
|
||
"lemon chiffon", 255, 250, 205,
|
||
"LemonChiffon", 255, 250, 205,
|
||
"LemonChiffon1", 255, 250, 205,
|
||
"LemonChiffon2", 238, 233, 191,
|
||
"LemonChiffon3", 205, 201, 165,
|
||
"LemonChiffon4", 139, 137, 112,
|
||
"light blue", 173, 216, 230,
|
||
"light coral", 240, 128, 128,
|
||
"light cyan", 224, 255, 255,
|
||
"light goldenrod", 238, 221, 130,
|
||
"light goldenrod yellow", 250, 250, 210,
|
||
"light gray", 211, 211, 211,
|
||
"light green", 144, 238, 144,
|
||
"light grey", 211, 211, 211,
|
||
"light pink", 255, 182, 193,
|
||
"light salmon", 255, 160, 122,
|
||
"light sea green", 32, 178, 170,
|
||
"light sky blue", 135, 206, 250,
|
||
"light slate blue", 132, 112, 255,
|
||
"light slate gray", 119, 136, 153,
|
||
"light slate grey", 119, 136, 153,
|
||
"light steel blue", 176, 196, 222,
|
||
"light yellow", 255, 255, 224,
|
||
"LightBlue", 173, 216, 230,
|
||
"LightBlue1", 191, 239, 255,
|
||
"LightBlue2", 178, 223, 238,
|
||
"LightBlue3", 154, 192, 205,
|
||
"LightBlue4", 104, 131, 139,
|
||
"LightCoral", 240, 128, 128,
|
||
"LightCyan", 224, 255, 255,
|
||
"LightCyan1", 224, 255, 255,
|
||
"LightCyan2", 209, 238, 238,
|
||
"LightCyan3", 180, 205, 205,
|
||
"LightCyan4", 122, 139, 139,
|
||
"LightGoldenrod", 238, 221, 130,
|
||
"LightGoldenrod1", 255, 236, 139,
|
||
"LightGoldenrod2", 238, 220, 130,
|
||
"LightGoldenrod3", 205, 190, 112,
|
||
"LightGoldenrod4", 139, 129, 76,
|
||
"LightGoldenrodYellow", 250, 250, 210,
|
||
"LightGray", 211, 211, 211,
|
||
"LightGreen", 144, 238, 144,
|
||
"LightGrey", 211, 211, 211,
|
||
"LightPink", 255, 182, 193,
|
||
"LightPink1", 255, 174, 185,
|
||
"LightPink2", 238, 162, 173,
|
||
"LightPink3", 205, 140, 149,
|
||
"LightPink4", 139, 95, 101,
|
||
"LightSalmon", 255, 160, 122,
|
||
"LightSalmon1", 255, 160, 122,
|
||
"LightSalmon2", 238, 149, 114,
|
||
"LightSalmon3", 205, 129, 98,
|
||
"LightSalmon4", 139, 87, 66,
|
||
"LightSeaGreen", 32, 178, 170,
|
||
"LightSkyBlue", 135, 206, 250,
|
||
"LightSkyBlue1", 176, 226, 255,
|
||
"LightSkyBlue2", 164, 211, 238,
|
||
"LightSkyBlue3", 141, 182, 205,
|
||
"LightSkyBlue4", 96, 123, 139,
|
||
"LightSlateBlue", 132, 112, 255,
|
||
"LightSlateGray", 119, 136, 153,
|
||
"LightSlateGrey", 119, 136, 153,
|
||
"LightSteelBlue", 176, 196, 222,
|
||
"LightSteelBlue1", 202, 225, 255,
|
||
"LightSteelBlue2", 188, 210, 238,
|
||
"LightSteelBlue3", 162, 181, 205,
|
||
"LightSteelBlue4", 110, 123, 139,
|
||
"LightYellow", 255, 255, 224,
|
||
"LightYellow1", 255, 255, 224,
|
||
"LightYellow2", 238, 238, 209,
|
||
"LightYellow3", 205, 205, 180,
|
||
"LightYellow4", 139, 139, 122,
|
||
"lime green", 50, 205, 50,
|
||
"LimeGreen", 50, 205, 50,
|
||
"linen", 250, 240, 230,
|
||
"magenta", 255, 0, 255,
|
||
"magenta1", 255, 0, 255,
|
||
"magenta2", 238, 0, 238,
|
||
"magenta3", 205, 0, 205,
|
||
"magenta4", 139, 0, 139,
|
||
"maroon", 176, 48, 96,
|
||
"maroon1", 255, 52, 179,
|
||
"maroon2", 238, 48, 167,
|
||
"maroon3", 205, 41, 144,
|
||
"maroon4", 139, 28, 98,
|
||
"medium aquamarine", 102, 205, 170,
|
||
"medium blue", 0, 0, 205,
|
||
"medium orchid", 186, 85, 211,
|
||
"medium purple", 147, 112, 219,
|
||
"medium sea green", 60, 179, 113,
|
||
"medium slate blue", 123, 104, 238,
|
||
"medium spring green", 0, 250, 154,
|
||
"medium turquoise", 72, 209, 204,
|
||
"medium violet red", 199, 21, 133,
|
||
"MediumAquamarine", 102, 205, 170,
|
||
"MediumBlue", 0, 0, 205,
|
||
"MediumOrchid", 186, 85, 211,
|
||
"MediumOrchid1", 224, 102, 255,
|
||
"MediumOrchid2", 209, 95, 238,
|
||
"MediumOrchid3", 180, 82, 205,
|
||
"MediumOrchid4", 122, 55, 139,
|
||
"MediumPurple", 147, 112, 219,
|
||
"MediumPurple1", 171, 130, 255,
|
||
"MediumPurple2", 159, 121, 238,
|
||
"MediumPurple3", 137, 104, 205,
|
||
"MediumPurple4", 93, 71, 139,
|
||
"MediumSeaGreen", 60, 179, 113,
|
||
"MediumSlateBlue", 123, 104, 238,
|
||
"MediumSpringGreen", 0, 250, 154,
|
||
"MediumTurquoise", 72, 209, 204,
|
||
"MediumVioletRed", 199, 21, 133,
|
||
"midnight blue", 25, 25, 112,
|
||
"MidnightBlue", 25, 25, 112,
|
||
"mint cream", 245, 255, 250,
|
||
"MintCream", 245, 255, 250,
|
||
"misty rose", 255, 228, 225,
|
||
"MistyRose", 255, 228, 225,
|
||
"MistyRose1", 255, 228, 225,
|
||
"MistyRose2", 238, 213, 210,
|
||
"MistyRose3", 205, 183, 181,
|
||
"MistyRose4", 139, 125, 123,
|
||
"moccasin", 255, 228, 181,
|
||
"navajo white", 255, 222, 173,
|
||
"NavajoWhite", 255, 222, 173,
|
||
"NavajoWhite1", 255, 222, 173,
|
||
"NavajoWhite2", 238, 207, 161,
|
||
"NavajoWhite3", 205, 179, 139,
|
||
"NavajoWhite4", 139, 121, 94,
|
||
"navy", 0, 0, 128,
|
||
"navy blue", 0, 0, 128,
|
||
"NavyBlue", 0, 0, 128,
|
||
"old lace", 253, 245, 230,
|
||
"OldLace", 253, 245, 230,
|
||
"olive drab", 107, 142, 35,
|
||
"OliveDrab", 107, 142, 35,
|
||
"OliveDrab1", 192, 255, 62,
|
||
"OliveDrab2", 179, 238, 58,
|
||
"OliveDrab3", 154, 205, 50,
|
||
"OliveDrab4", 105, 139, 34,
|
||
"orange", 255, 165, 0,
|
||
"orange red", 255, 69, 0,
|
||
"orange1", 255, 165, 0,
|
||
"orange2", 238, 154, 0,
|
||
"orange3", 205, 133, 0,
|
||
"orange4", 139, 90, 0,
|
||
"OrangeRed", 255, 69, 0,
|
||
"OrangeRed1", 255, 69, 0,
|
||
"OrangeRed2", 238, 64, 0,
|
||
"OrangeRed3", 205, 55, 0,
|
||
"OrangeRed4", 139, 37, 0,
|
||
"orchid", 218, 112, 214,
|
||
"orchid1", 255, 131, 250,
|
||
"orchid2", 238, 122, 233,
|
||
"orchid3", 205, 105, 201,
|
||
"orchid4", 139, 71, 137,
|
||
"pale goldenrod", 238, 232, 170,
|
||
"pale green", 152, 251, 152,
|
||
"pale turquoise", 175, 238, 238,
|
||
"pale violet red", 219, 112, 147,
|
||
"PaleGoldenrod", 238, 232, 170,
|
||
"PaleGreen", 152, 251, 152,
|
||
"PaleGreen1", 154, 255, 154,
|
||
"PaleGreen2", 144, 238, 144,
|
||
"PaleGreen3", 124, 205, 124,
|
||
"PaleGreen4", 84, 139, 84,
|
||
"PaleTurquoise", 175, 238, 238,
|
||
"PaleTurquoise1", 187, 255, 255,
|
||
"PaleTurquoise2", 174, 238, 238,
|
||
"PaleTurquoise3", 150, 205, 205,
|
||
"PaleTurquoise4", 102, 139, 139,
|
||
"PaleVioletRed", 219, 112, 147,
|
||
"PaleVioletRed1", 255, 130, 171,
|
||
"PaleVioletRed2", 238, 121, 159,
|
||
"PaleVioletRed3", 205, 104, 137,
|
||
"PaleVioletRed4", 139, 71, 93,
|
||
"papaya whip", 255, 239, 213,
|
||
"PapayaWhip", 255, 239, 213,
|
||
"peach puff", 255, 218, 185,
|
||
"PeachPuff", 255, 218, 185,
|
||
"PeachPuff1", 255, 218, 185,
|
||
"PeachPuff2", 238, 203, 173,
|
||
"PeachPuff3", 205, 175, 149,
|
||
"PeachPuff4", 139, 119, 101,
|
||
"peru", 205, 133, 63,
|
||
"pink", 255, 192, 203,
|
||
"pink1", 255, 181, 197,
|
||
"pink2", 238, 169, 184,
|
||
"pink3", 205, 145, 158,
|
||
"pink4", 139, 99, 108,
|
||
"plum", 221, 160, 221,
|
||
"plum1", 255, 187, 255,
|
||
"plum2", 238, 174, 238,
|
||
"plum3", 205, 150, 205,
|
||
"plum4", 139, 102, 139,
|
||
"powder blue", 176, 224, 230,
|
||
"PowderBlue", 176, 224, 230,
|
||
"purple", 160, 32, 240,
|
||
"purple1", 155, 48, 255,
|
||
"purple2", 145, 44, 238,
|
||
"purple3", 125, 38, 205,
|
||
"purple4", 85, 26, 139,
|
||
"red", 255, 0, 0,
|
||
"red1", 255, 0, 0,
|
||
"red2", 238, 0, 0,
|
||
"red3", 205, 0, 0,
|
||
"red4", 139, 0, 0,
|
||
"rosy brown", 188, 143, 143,
|
||
"RosyBrown", 188, 143, 143,
|
||
"RosyBrown1", 255, 193, 193,
|
||
"RosyBrown2", 238, 180, 180,
|
||
"RosyBrown3", 205, 155, 155,
|
||
"RosyBrown4", 139, 105, 105,
|
||
"royal blue", 65, 105, 225,
|
||
"RoyalBlue", 65, 105, 225,
|
||
"RoyalBlue1", 72, 118, 255,
|
||
"RoyalBlue2", 67, 110, 238,
|
||
"RoyalBlue3", 58, 95, 205,
|
||
"RoyalBlue4", 39, 64, 139,
|
||
"saddle brown", 139, 69, 19,
|
||
"SaddleBrown", 139, 69, 19,
|
||
"salmon", 250, 128, 114,
|
||
"salmon1", 255, 140, 105,
|
||
"salmon2", 238, 130, 98,
|
||
"salmon3", 205, 112, 84,
|
||
"salmon4", 139, 76, 57,
|
||
"sandy brown", 244, 164, 96,
|
||
"SandyBrown", 244, 164, 96,
|
||
"sea green", 46, 139, 87,
|
||
"SeaGreen", 46, 139, 87,
|
||
"SeaGreen1", 84, 255, 159,
|
||
"SeaGreen2", 78, 238, 148,
|
||
"SeaGreen3", 67, 205, 128,
|
||
"SeaGreen4", 46, 139, 87,
|
||
"seashell", 255, 245, 238,
|
||
"seashell1", 255, 245, 238,
|
||
"seashell2", 238, 229, 222,
|
||
"seashell3", 205, 197, 191,
|
||
"seashell4", 139, 134, 130,
|
||
"sienna", 160, 82, 45,
|
||
"sienna1", 255, 130, 71,
|
||
"sienna2", 238, 121, 66,
|
||
"sienna3", 205, 104, 57,
|
||
"sienna4", 139, 71, 38,
|
||
"sky blue", 135, 206, 235,
|
||
"SkyBlue", 135, 206, 235,
|
||
"SkyBlue1", 135, 206, 255,
|
||
"SkyBlue2", 126, 192, 238,
|
||
"SkyBlue3", 108, 166, 205,
|
||
"SkyBlue4", 74, 112, 139,
|
||
"slate blue", 106, 90, 205,
|
||
"slate gray", 112, 128, 144,
|
||
"slate grey", 112, 128, 144,
|
||
"SlateBlue", 106, 90, 205,
|
||
"SlateBlue1", 131, 111, 255,
|
||
"SlateBlue2", 122, 103, 238,
|
||
"SlateBlue3", 105, 89, 205,
|
||
"SlateBlue4", 71, 60, 139,
|
||
"SlateGray", 112, 128, 144,
|
||
"SlateGray1", 198, 226, 255,
|
||
"SlateGray2", 185, 211, 238,
|
||
"SlateGray3", 159, 182, 205,
|
||
"SlateGray4", 108, 123, 139,
|
||
"SlateGrey", 112, 128, 144,
|
||
"snow", 255, 250, 250,
|
||
"snow1", 255, 250, 250,
|
||
"snow2", 238, 233, 233,
|
||
"snow3", 205, 201, 201,
|
||
"snow4", 139, 137, 137,
|
||
"spring green", 0, 255, 127,
|
||
"SpringGreen", 0, 255, 127,
|
||
"SpringGreen1", 0, 255, 127,
|
||
"SpringGreen2", 0, 238, 118,
|
||
"SpringGreen3", 0, 205, 102,
|
||
"SpringGreen4", 0, 139, 69,
|
||
"steel blue", 70, 130, 180,
|
||
"SteelBlue", 70, 130, 180,
|
||
"SteelBlue1", 99, 184, 255,
|
||
"SteelBlue2", 92, 172, 238,
|
||
"SteelBlue3", 79, 148, 205,
|
||
"SteelBlue4", 54, 100, 139,
|
||
"tan", 210, 180, 140,
|
||
"tan1", 255, 165, 79,
|
||
"tan2", 238, 154, 73,
|
||
"tan3", 205, 133, 63,
|
||
"tan4", 139, 90, 43,
|
||
"thistle", 216, 191, 216,
|
||
"thistle1", 255, 225, 255,
|
||
"thistle2", 238, 210, 238,
|
||
"thistle3", 205, 181, 205,
|
||
"thistle4", 139, 123, 139,
|
||
"tomato", 255, 99, 71,
|
||
"tomato1", 255, 99, 71,
|
||
"tomato2", 238, 92, 66,
|
||
"tomato3", 205, 79, 57,
|
||
"tomato4", 139, 54, 38,
|
||
"turquoise", 64, 224, 208,
|
||
"turquoise1", 0, 245, 255,
|
||
"turquoise2", 0, 229, 238,
|
||
"turquoise3", 0, 197, 205,
|
||
"turquoise4", 0, 134, 139,
|
||
"violet", 238, 130, 238,
|
||
"violet red", 208, 32, 144,
|
||
"VioletRed", 208, 32, 144,
|
||
"VioletRed1", 255, 62, 150,
|
||
"VioletRed2", 238, 58, 140,
|
||
"VioletRed3", 205, 50, 120,
|
||
"VioletRed4", 139, 34, 82,
|
||
"wheat", 245, 222, 179,
|
||
"wheat1", 255, 231, 186,
|
||
"wheat2", 238, 216, 174,
|
||
"wheat3", 205, 186, 150,
|
||
"wheat4", 139, 126, 102,
|
||
"white", 255, 255, 255,
|
||
"white smoke", 245, 245, 245,
|
||
"WhiteSmoke", 245, 245, 245,
|
||
"yellow", 255, 255, 0,
|
||
"yellow green", 154, 205, 50,
|
||
"yellow1", 255, 255, 0,
|
||
"yellow2", 238, 238, 0,
|
||
"yellow3", 205, 205, 0,
|
||
"yellow4", 139, 139, 0,
|
||
"YellowGreen", 154, 205, 50,
|
||
NULL, 0, 0, 0
|
||
};
|
||
|
||
|
||
/*
|
||
* This value will be set to the number of colors in the color table
|
||
* the first time it is needed.
|
||
*/
|
||
|
||
static int numXColors = 0;
|
||
|
||
/*
|
||
* Forward declarations for functions used only in this file.
|
||
*/
|
||
|
||
static int FindColor _ANSI_ARGS_((const char *name, XColor *colorPtr));
|
||
|
||
/*
|
||
*----------------------------------------------------------------------
|
||
*
|
||
* FindColor --
|
||
*
|
||
* This routine finds the color entry that corresponds to the
|
||
* specified color.
|
||
*
|
||
* Results:
|
||
* Returns non-zero on success. The RGB values of the XColor
|
||
* will be initialized to the proper values on success.
|
||
*
|
||
* Side effects:
|
||
* None.
|
||
*
|
||
*----------------------------------------------------------------------
|
||
*/
|
||
|
||
static int
|
||
FindColor(name, colorPtr)
|
||
const char *name;
|
||
XColor *colorPtr;
|
||
{
|
||
int l, u, r, i;
|
||
|
||
/*
|
||
* Count the number of elements in the color array if we haven't
|
||
* done so yet.
|
||
*/
|
||
|
||
if (numXColors == 0) {
|
||
XColorEntry *ePtr;
|
||
for (ePtr = xColors; ePtr->name != NULL; ePtr++) {
|
||
numXColors++;
|
||
}
|
||
}
|
||
|
||
/*
|
||
* Perform a binary search on the sorted array of colors.
|
||
*/
|
||
|
||
l = 0;
|
||
u = numXColors - 1;
|
||
while (l <= u) {
|
||
i = (l + u) / 2;
|
||
r = strcasecmp(name, xColors[i].name);
|
||
if (r == 0) {
|
||
break;
|
||
} else if (r < 0) {
|
||
u = i-1;
|
||
} else {
|
||
l = i+1;
|
||
}
|
||
}
|
||
if (l > u) {
|
||
return 0;
|
||
}
|
||
colorPtr->red = xColors[i].red << 8;
|
||
colorPtr->green = xColors[i].green << 8;
|
||
colorPtr->blue = xColors[i].blue << 8;
|
||
return 1;
|
||
}
|
||
|
||
/*
|
||
*----------------------------------------------------------------------
|
||
*
|
||
* XParseColor --
|
||
*
|
||
* Partial implementation of X color name parsing interface.
|
||
*
|
||
* Results:
|
||
* Returns non-zero on success.
|
||
*
|
||
* Side effects:
|
||
* None.
|
||
*
|
||
*----------------------------------------------------------------------
|
||
*/
|
||
|
||
Status
|
||
XParseColor(display, map, spec, colorPtr)
|
||
Display *display;
|
||
Colormap map;
|
||
const char* spec;
|
||
XColor *colorPtr;
|
||
{
|
||
if (spec[0] == '#') {
|
||
char fmt[16];
|
||
int i, red, green, blue;
|
||
|
||
if ((i = strlen(spec+1))%3) {
|
||
return 0;
|
||
}
|
||
i /= 3;
|
||
|
||
sprintf(fmt, "%%%dx%%%dx%%%dx", i, i, i);
|
||
if (sscanf(spec+1, fmt, &red, &green, &blue) != 3) {
|
||
return 0;
|
||
}
|
||
colorPtr->red = ((unsigned short) red) << (4 * (4 - i));
|
||
colorPtr->green = ((unsigned short) green) << (4 * (4 - i));
|
||
colorPtr->blue = ((unsigned short) blue) << (4 * (4 - i));
|
||
} else {
|
||
if (!FindColor(spec, colorPtr)) {
|
||
return 0;
|
||
}
|
||
}
|
||
colorPtr->pixel = TkpGetPixel(colorPtr);
|
||
colorPtr->flags = DoRed|DoGreen|DoBlue;
|
||
colorPtr->pad = 0;
|
||
return 1;
|
||
}
|