RGBA Colors

RGBA Colors — RGBA colors

Functions

CdkRGBA * cdk_rgba_copy ()
void cdk_rgba_free ()
gboolean cdk_rgba_parse ()
gboolean cdk_rgba_equal ()
guint cdk_rgba_hash ()
gchar * cdk_rgba_to_string ()

Types and Values

  CdkRGBA

Includes

#include <cdk/cdk.h>

Description

CdkRGBA is a convenient way to pass rgba colors around. It’s based on cairo’s way to deal with colors and mirrors its behavior. All values are in the range from 0.0 to 1.0 inclusive. So the color (0.0, 0.0, 0.0, 0.0) represents transparent black and (1.0, 1.0, 1.0, 1.0) is opaque white. Other values will be clamped to this range when drawing.

Functions

cdk_rgba_copy ()

CdkRGBA *
cdk_rgba_copy (const CdkRGBA *rgba);

Makes a copy of a CdkRGBA.

The result must be freed through cdk_rgba_free().

Parameters

rgba

a CdkRGBA

 

Returns

A newly allocated CdkRGBA, with the same contents as rgba

Since: 3.0


cdk_rgba_free ()

void
cdk_rgba_free (CdkRGBA *rgba);

Frees a CdkRGBA created with cdk_rgba_copy()

Parameters

rgba

a CdkRGBA

 

Since: 3.0


cdk_rgba_parse ()

gboolean
cdk_rgba_parse (CdkRGBA *rgba,
                const gchar *spec);

Parses a textual representation of a color, filling in the red , green , blue and alpha fields of the rgba CdkRGBA.

The string can be either one of:

  • A standard name (Taken from the X11 rgb.txt file).

  • A hexadecimal value in the form “#rgb”, “#rrggbb”, “#rrrgggbbb” or ”#rrrrggggbbbb”

  • A RGB color in the form “rgb(r,g,b)” (In this case the color will have full opacity)

  • A RGBA color in the form “rgba(r,g,b,a)”

Where “r”, “g”, “b” and “a” are respectively the red, green, blue and alpha color values. In the last two cases, “r”, “g”, and “b” are either integers in the range 0 to 255 or percentage values in the range 0% to 100%, and a is a floating point value in the range 0 to 1.

Parameters

rgba

the CdkRGBA to fill in

 

spec

the string specifying the color

 

Returns

TRUE if the parsing succeeded

Since: 3.0


cdk_rgba_equal ()

gboolean
cdk_rgba_equal (gconstpointer p1,
                gconstpointer p2);

Compares two RGBA colors.

Parameters

p1

a CdkRGBA pointer.

[type CdkRGBA]

p2

another CdkRGBA pointer.

[type CdkRGBA]

Returns

TRUE if the two colors compare equal

Since: 3.0


cdk_rgba_hash ()

guint
cdk_rgba_hash (gconstpointer p);

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

Parameters

p

a CdkRGBA pointer.

[type CdkRGBA]

Returns

The hash value for p

Since: 3.0


cdk_rgba_to_string ()

gchar *
cdk_rgba_to_string (const CdkRGBA *rgba);

Returns a textual specification of rgba in the form rgb(r,g,b) or rgba(r g,b,a), where “r”, “g”, “b” and “a” represent the red, green, blue and alpha values respectively. “r”, “g”, and “b” are represented as integers in the range 0 to 255, and “a” is represented as a floating point value in the range 0 to 1.

These string forms are string forms that are supported by the CSS3 colors module, and can be parsed by cdk_rgba_parse().

Note that this string representation may lose some precision, since “r”, “g” and “b” are represented as 8-bit integers. If this is a concern, you should use a different representation.

Parameters

rgba

a CdkRGBA

 

Returns

A newly allocated text string

Since: 3.0

Types and Values

CdkRGBA

typedef struct {
  gdouble red;
  gdouble green;
  gdouble blue;
  gdouble alpha;
} CdkRGBA;

A CdkRGBA is used to represent a (possibly translucent) color, in a way that is compatible with cairo’s notion of color.

Members

gdouble red;

The intensity of the red channel from 0.0 to 1.0 inclusive

 

gdouble green;

The intensity of the green channel from 0.0 to 1.0 inclusive

 

gdouble blue;

The intensity of the blue channel from 0.0 to 1.0 inclusive

 

gdouble alpha;

The opacity of the color from 0.0 for completely translucent to 1.0 for opaque