XParseColor()XParseColor()NameXParseColor – look up RGB values from ASCII color name or translate
hexadecimal value.
Synopsis
Status XParseColor(display, colormap, spec, exact_def_return)
Display *display;
Colormap colormap;
char *spec;
XColor *exact_def_return;
Arguments
display Specifies a connection to an X server; returned from
XOpenDisplay().
colormap Specifies a colormap associated with the screen on which to
look up the color. This argument is required, but is mean‐
ingful only with Xcms color specifications.
spec Specifies the color string (see the "Description" section).
Uppercase or lowercase does not matter. If the color name is
not in the Host Portable Character Encoding, the result is
implementation-dependent.
exact_def_return
Returns the RGB values corresponding to the specified color
name or hexadecimal specification, and sets its DoRed,
DoGreen, and DoBlue flags.
Returns
Zero on failure, non-zero on success.
DescriptionXParseColor() looks up the string name of a color with respect to the
screen associated with the specified colormap. It returns the exact
color value. It or hexadecimal values specified, or translating the
hexadecimal code into separate RGB values.
XParseColor() takes a string specification of a color, typically from a
user-specified command line or resource value, and returns the corre‐
sponding red, green, and blue values, suitable for a subsequent call to
XAllocColor or XStoreColor(). spec can be given in several forms, and
may be looked up in different ways depending on the form.
· Color name, such as "blue". This form is looked up in the server's
RGB database, a sample of which is listed in Appendix D, The Server-
side Color Database.
· Xcms color name, such as TekHVC:0.0/100.0/0.0. This form is looked
up in the client-side database for the screen associated with the
specified colormap. This form is supported starting in Release 5.
For more information on this form of color specification, see the
Programmer's Supplement for Release 5, or the Third Edition of Vol‐
ume One.
· Hexadecimal specification such as #3a7. This form consists of an
initial sharp sign character followed by one of the following for‐
mats:
#RGB (one character per color)
#RRGGBB (two characters per color)
#RRRGGGBBB (three characters per color)
#RRRRGGGGBBBB (four characters per color)
where R, G, and B represent single hexadecimal digits (uppercase or
lowercase). The hexadecimal strings must be NULL-terminated so that
XParseColor() knows when it has reached the end. When fewer than 16
bits each are specified, they represent the most significant bits of
the value. For example, #3a7 is the same as #3000a0007000. The
hexadecimal style is discouraged in Release 5 and later.
Status is zero on failure, non-zero on success. This routine will fail
if the initial character is a sharp sign but the string otherwise fails
to fit one of the above formats, or if the initial character is not a
sharp sign and the named color does not exist in the server's database.
For more information, see Volume One, Chapter 7, Color and in the Third
Edition, the chapter on Device-Independent Color.
Structures
typedef struct {
unsigned long pixel;
unsigned short red, green, blue;
char flags; /* DoRed, DoGreen, DoBlue */
char pad;
} XColor;
Errors
BadColor Invalid colormap.
See AlsoXBlackPixel(), XWhitePixel(), XAllocColor(), XcmsAllocColor(), XAlloc‐
ColorCells(), XAllocColorPlanes(), XAllocNamedColor(), XcmsAllocNamed‐
Color(), XFreeColors(), XLookupColor(), XQueryColor(), XQueryColors(),
XStoreColor(), XcmsStoreColor(), XStoreColors(), XcmsStoreColors(),
XStoreNamedColor().
Xlib - Color Cells XParseColor()