One Unified Global Perspective
Communications with a Global Perspective
Home
Intro
Contact Us
Voice over IP
PBX Solutions
Services
Support
Glossary
Open Source
Blog
Forum

WebMail





2007 May 24 - Thu

Color Name Enumeration for C++

I was looking to use named colors in Microsoft's Visual Studio C++, but couldn't find any enumerations anywhere. I found a Wiki Entry which listed Web Colors, aka X1 Color Names. In taking a look at the source code for the web page, I noticed that the tables were produced in a nice, computer readable format.

I ended up cutting and pasting the code into an editor and cut out all the extraneous stuff and was left with a regular list I could process with a short Perl script:

#!/usr/bin/perl

use strict;

my $line;
my ( $enum, $val );
print( "enum EColor {\n" );
while ($line = <STDIN>) {
  $line = <STDIN>;
  chomp( $line );
  $line =~ /^<td>(.+)<\/td>$/;
  $enum = $1;
  $line = <STDIN>;
  chomp( $line );
  $line =~ /^<td>(\w{2}) (\w{2}) (\w{2})<\/td>$/;
  $val = "RGB(0x" . $1 . ",0x" . $2 . ",0x" . $3 . ")";
  $line = <STDIN>;
  $line = <STDIN>;
  print( "  $enum = $val,\n" );
}
print( "}\n" );

This code produce the following C++ enumeration. If you run the above script, you'll find that one of the colors was duplicated. Simply remove the redundant copy to fix the compile error.

enum EColor {
  IndianRed = RGB(0xCD,0x5C,0x5C),
  LightCoral = RGB(0xF0,0x80,0x80),
  Salmon = RGB(0xFA,0x80,0x72),
  DarkSalmon = RGB(0xE9,0x96,0x7A),
  LightSalmon = RGB(0xFF,0xA0,0x7A),
  Crimson = RGB(0xDC,0x14,0x3C),
  Red = RGB(0xFF,0x00,0x00),
  FireBrick = RGB(0xB2,0x22,0x22),
  DarkRed = RGB(0x8B,0x00,0x00),
  Pink = RGB(0xFF,0xC0,0xCB),
  LightPink = RGB(0xFF,0xB6,0xC1),
  HotPink = RGB(0xFF,0x69,0xB4),
  DeepPink = RGB(0xFF,0x14,0x93),
  MediumVioletRed = RGB(0xC7,0x15,0x85),
  PaleVioletRed = RGB(0xDB,0x70,0x93),
  Coral = RGB(0xFF,0x7F,0x50),
  Tomato = RGB(0xFF,0x63,0x47),
  OrangeRed = RGB(0xFF,0x45,0x00),
  DarkOrange = RGB(0xFF,0x8C,0x00),
  Orange = RGB(0xFF,0xA5,0x00),
  Gold = RGB(0xFF,0xD7,0x00),
  Yellow = RGB(0xFF,0xFF,0x00),
  LightYellow = RGB(0xFF,0xFF,0xE0),
  LemonChiffon = RGB(0xFF,0xFA,0xCD),
  LightGoldenrodYellow = RGB(0xFA,0xFA,0xD2),
  PapayaWhip = RGB(0xFF,0xEF,0xD5),
  Moccasin = RGB(0xFF,0xE4,0xB5),
  PeachPuff = RGB(0xFF,0xDA,0xB9),
  PaleGoldenrod = RGB(0xEE,0xE8,0xAA),
  Khaki = RGB(0xF0,0xE6,0x8C),
  DarkKhaki = RGB(0xBD,0xB7,0x6B),
  Lavender = RGB(0xE6,0xE6,0xFA),
  Thistle = RGB(0xD8,0xBF,0xD8),
  Plum = RGB(0xDD,0xA0,0xDD),
  Violet = RGB(0xEE,0x82,0xEE),
  Orchid = RGB(0xDA,0x70,0xD6),
  Fuchsia = RGB(0xFF,0x00,0xFF),
  Magenta = RGB(0xFF,0x00,0xFF),
  MediumOrchid = RGB(0xBA,0x55,0xD3),
  MediumPurple = RGB(0x93,0x70,0xDB),
  BlueViolet = RGB(0x8A,0x2B,0xE2),
  DarkViolet = RGB(0x94,0x00,0xD3),
  DarkOrchid = RGB(0x99,0x32,0xCC),
  DarkMagenta = RGB(0x8B,0x00,0x8B),
  Purple = RGB(0x80,0x00,0x80),
  Indigo = RGB(0x4B,0x00,0x82),
  SlateBlue = RGB(0x6A,0x5A,0xCD),
  DarkSlateBlue = RGB(0x48,0x3D,0x8B),
  GreenYellow = RGB(0xAD,0xFF,0x2F),
  Chartreuse = RGB(0x7F,0xFF,0x00),
  LawnGreen = RGB(0x7C,0xFC,0x00),
  Lime = RGB(0x00,0xFF,0x00),
  LimeGreen = RGB(0x32,0xCD,0x32),
  PaleGreen = RGB(0x98,0xFB,0x98),
  LightGreen = RGB(0x90,0xEE,0x90),
  MediumSpringGreen = RGB(0x00,0xFA,0x9A),
  SpringGreen = RGB(0x00,0xFF,0x7F),
  MediumSeaGreen = RGB(0x3C,0xB3,0x71),
  SeaGreen = RGB(0x2E,0x8B,0x57),
  ForestGreen = RGB(0x22,0x8B,0x22),
  Green = RGB(0x00,0x80,0x00),
  DarkGreen = RGB(0x00,0x64,0x00),
  YellowGreen = RGB(0x9A,0xCD,0x32),
  OliveDrab = RGB(0x6B,0x8E,0x23),
  Olive = RGB(0x80,0x80,0x00),
  DarkOliveGreen = RGB(0x55,0x6B,0x2F),
  MediumAquamarine = RGB(0x66,0xCD,0xAA),
  DarkSeaGreen = RGB(0x8F,0xBC,0x8F),
  LightSeaGreen = RGB(0x20,0xB2,0xAA),
  DarkCyan = RGB(0x00,0x8B,0x8B),
  Teal = RGB(0x00,0x80,0x80),
  Aqua = RGB(0x00,0xFF,0xFF),
  Cyan = RGB(0x00,0xFF,0xFF),
  LightCyan = RGB(0xE0,0xFF,0xFF),
  PaleTurquoise = RGB(0xAF,0xEE,0xEE),
  Aquamarine = RGB(0x7F,0xFF,0xD4),
  Turquoise = RGB(0x40,0xE0,0xD0),
  MediumTurquoise = RGB(0x48,0xD1,0xCC),
  DarkTurquoise = RGB(0x00,0xCE,0xD1),
  CadetBlue = RGB(0x5F,0x9E,0xA0),
  SteelBlue = RGB(0x46,0x82,0xB4),
  LightSteelBlue = RGB(0xB0,0xC4,0xDE),
  PowderBlue = RGB(0xB0,0xE0,0xE6),
  LightBlue = RGB(0xAD,0xD8,0xE6),
  SkyBlue = RGB(0x87,0xCE,0xEB),
  LightSkyBlue = RGB(0x87,0xCE,0xFA),
  DeepSkyBlue = RGB(0x00,0xBF,0xFF),
  DodgerBlue = RGB(0x1E,0x90,0xFF),
  CornflowerBlue = RGB(0x64,0x95,0xED),
  MediumSlateBlue = RGB(0x7B,0x68,0xEE),
  RoyalBlue = RGB(0x41,0x69,0xE1),
  Blue = RGB(0x00,0x00,0xFF),
  MediumBlue = RGB(0x00,0x00,0xCD),
  DarkBlue = RGB(0x00,0x00,0x8B),
  Navy = RGB(0x00,0x00,0x80),
  MidnightBlue = RGB(0x19,0x19,0x70),
  Cornsilk = RGB(0xFF,0xF8,0xDC),
  BlanchedAlmond = RGB(0xFF,0xEB,0xCD),
  Bisque = RGB(0xFF,0xE4,0xC4),
  NavajoWhite = RGB(0xFF,0xDE,0xAD),
  Wheat = RGB(0xF5,0xDE,0xB3),
  BurlyWood = RGB(0xDE,0xB8,0x87),
  Tan = RGB(0xD2,0xB4,0x8C),
  RosyBrown = RGB(0xBC,0x8F,0x8F),
  SandyBrown = RGB(0xF4,0xA4,0x60),
  Goldenrod = RGB(0xDA,0xA5,0x20),
  DarkGoldenrod = RGB(0xB8,0x86,0x0B),
  Peru = RGB(0xCD,0x85,0x3F),
  Chocolate = RGB(0xD2,0x69,0x1E),
  SaddleBrown = RGB(0x8B,0x45,0x13),
  Sienna = RGB(0xA0,0x52,0x2D),
  Brown = RGB(0xA5,0x2A,0x2A),
  Maroon = RGB(0x80,0x00,0x00),
  White = RGB(0xFF,0xFF,0xFF),
  Snow = RGB(0xFF,0xFA,0xFA),
  Honeydew = RGB(0xF0,0xFF,0xF0),
  MintCream = RGB(0xF5,0xFF,0xFA),
  Azure = RGB(0xF0,0xFF,0xFF),
  AliceBlue = RGB(0xF0,0xF8,0xFF),
  GhostWhite = RGB(0xF8,0xF8,0xFF),
  WhiteSmoke = RGB(0xF5,0xF5,0xF5),
  Seashell = RGB(0xFF,0xF5,0xEE),
  Beige = RGB(0xF5,0xF5,0xDC),
  OldLace = RGB(0xFD,0xF5,0xE6),
  FloralWhite = RGB(0xFF,0xFA,0xF0),
  Ivory = RGB(0xFF,0xFF,0xF0),
  AntiqueWhite = RGB(0xFA,0xEB,0xD7),
  Linen = RGB(0xFA,0xF0,0xE6),
  LavenderBlush = RGB(0xFF,0xF0,0xF5),
  MistyRose = RGB(0xFF,0xE4,0xE1),
  Gainsboro = RGB(0xDC,0xDC,0xDC),
  LightGrey = RGB(0xD3,0xD3,0xD3),
  Silver = RGB(0xC0,0xC0,0xC0),
  DarkGray = RGB(0xA9,0xA9,0xA9),
  Gray = RGB(0x80,0x80,0x80),
  DimGray = RGB(0x69,0x69,0x69),
  LightSlateGray = RGB(0x77,0x88,0x99),
  SlateGray = RGB(0x70,0x80,0x90),
  DarkSlateGray = RGB(0x2F,0x4F,0x4F),
  Black = RGB(0x00,0x00,0x00)
};

Use it as you see fit.

As one more point of reference for color, here is a good reference page for Color Selection.

[/OpenSource/Programming] permanent link



Blog Content ©2008
Ray Burkholder
All Rights Reserved
ray@oneunified.net
(441) 505 7293
Available for Contract Work
Resume

RSS: Click to see the XML version of this web page.

View Ray 
Burkholder's profile on LinkedIn
technorati
Add to Technorati Favorites



May
Su Mo Tu We Th Fr Sa
   
24
   


Main Links:
Monitoring Server
SSH Tools
QuantDeveloper Code

Special Links:
Frink

Blog Links:
Sergey Solyanik
Marc Andreessen
HotGigs
Micro Persuasion
... Reasonable ...
Chris Donnan
BeyondVC
lifehacker
Trader Mike
Ticker Sense
HeadRush
TraderFeed
Stock Bandit
The Daily WTF
Guy Kawaski
J. Brant Arseneau
Steve Pavlina
Matt Cutts
Kevin Scaldeferri
Joel On Software
Quant Recruiter
Blosxom User Group
Wesner Moise
Julian Dunn
Steve Yegge

2007
Months
May




Mason HQ

Disclaimer: This site may include market analysis. All ideas, opinions, and/or forecasts, expressed or implied herein, are for informational purposes only and should not be construed as a recommendation to invest, trade, and/or speculate in the markets. Any investments, trades, and/or speculations made in light of the ideas, opinions, and/or forecasts, expressed or implied herein, are committed at your own risk, financial or otherwise.