## Colors

Colors — Manipulation of colors

## Synopsis

    #include <gdk/gdk.h>

                        GdkColor;
    GdkColor *          gdk_color_copy                      (const GdkColor *color);
    void                gdk_color_free                      (GdkColor *color);
    gboolean            gdk_color_parse                     (const gchar *spec,
                                                             GdkColor *color);
    gboolean            gdk_color_equal                     (const GdkColor *colora,
                                                             const GdkColor *colorb);
    guint               gdk_color_hash                      (const GdkColor *color);
    gchar *             gdk_color_to_string                 (const GdkColor *color);

## Description

A GdkColor represents a color.

When working with cairo, it is often more convenient to use a GdkRGBA instead.

## Details

### GdkColor

    typedef struct {
      guint32 pixel;
      guint16 red;
      guint16 green;
      guint16 blue;
    } GdkColor;

The GdkColor structure is used to describe a color, similar to the XColor struct used in the X11 drawing API.

guint32 `pixel`; | For allocated colors, the pixel value used to draw this color on the screen. Not used anymore.
guint16 `red`; | The red component of the color. This is a value between 0 and 65535, with 65535 indicating full intensity
guint16 `green`; | The green component of the color
guint16 `blue`; | The blue component of the color

### gdk_color_copy ()

    GdkColor *          gdk_color_copy                      (const GdkColor *color);

Makes a copy of a color structure.

The result must be freed using `gdk_color_free()`.

`color` : | a GdkColor
Returns : | a copy of `color`

### gdk_color_free ()

    void                gdk_color_free                      (GdkColor *color);

Frees a color structure created with `gdk_color_copy()`.

`color` : | a GdkColor

### gdk_color_parse ()

    gboolean            gdk_color_parse                     (const gchar *spec,
                                                             GdkColor *color);

Parses a textual specification of a color and fill in the `red`, `green`, and `blue` fields of a GdkColor structure.

The string can either one of a large set of standard names (taken from the X11 `rgb.txt` file), or it can be a hex value in the form '#rgb' '#rrggbb' '#rrrgggbbb' or '#rrrrggggbbbb' where 'r', 'g' and 'b' are hex digits of the red, green, and blue components of the color, respectively. (White in the four forms is '#fff', '#ffffff', '#fffffffff' and '#ffffffffffff').

`spec` : | the string specifying the color
`color` : | the GdkColor to fill in. [out]
Returns : | `TRUE` if the parsing succeeded

### gdk_color_equal ()

    gboolean            gdk_color_equal                     (const GdkColor *colora,
                                                             const GdkColor *colorb);

Compares two colors.

`colora` : | a GdkColor
`colorb` : | another GdkColor
Returns : | `TRUE` if the two colors compare equal

### gdk_color_hash ()

    guint               gdk_color_hash                      (const GdkColor *color);

A hash function suitable for using for a hash table that stores GdkColors.

`color` : | a GdkColor
Returns : | The hash function applied to `color`

### gdk_color_to_string ()

    gchar *             gdk_color_to_string                 (const GdkColor *color);

Returns a textual specification of `color` in the hexadecimal form `#rrrrggggbbbb`, where `r`, `g` and `b` are hex digits representing the red, green and blue components respectively.

The returned string can be parsed by `gdk_color_parse()`.

`color` : | a GdkColor
Returns : | a newly-allocated text string

Since 2.12