![]() |
![]() |
![]() |
GDK Reference Manual | ![]() |
---|---|---|---|---|
Top | Description |
#include <gdk/gdk.h> GdkColor; GdkColormap; GdkColormap* gdk_colormap_new (GdkVisual *visual
,gboolean allocate
); GdkColormap* gdk_colormap_get_system (void
); gint gdk_colormap_alloc_colors (GdkColormap *colormap
,GdkColor *colors
,gint n_colors
,gboolean writeable
,gboolean best_match
,gboolean *success
); gboolean gdk_colormap_alloc_color (GdkColormap *colormap
,GdkColor *color
,gboolean writeable
,gboolean best_match
); void gdk_colormap_free_colors (GdkColormap *colormap
,const GdkColor *colors
,gint n_colors
); GdkVisual * gdk_colormap_get_visual (GdkColormap *colormap
); GdkScreen * gdk_colormap_get_screen (GdkColormap *cmap
); 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 *colora
); gchar * gdk_color_to_string (const GdkColor *color
);
These functions are used to modify colormaps. A colormap is an object that contains the mapping between the color values stored in memory and the RGB values that are used to display color values. In general, colormaps only contain significant information for pseudo-color visuals, but even for other visual types, a colormap object is required in some circumstances.
There are a couple of special colormaps that can
be retrieved. The system colormap (retrieved
with gdk_colormap_get_system()
) is the default
colormap of the system. If you are using GdkRGB,
there is another colormap that is important - the
colormap in which GdkRGB works, retrieved with
gdk_rgb_get_colormap()
. However, when using GdkRGB,
it is not generally necessary to allocate colors
directly.
In previous revisions of this interface, a number of functions that take a GdkColormap parameter were replaced with functions whose names began with "gdk_colormap_".
typedef struct { guint32 pixel; guint16 red; guint16 green; guint16 blue; } GdkColor;
The GdkColor structure is used to describe an allocated or unallocated color.
guint32 |
For allocated colors, the value used to draw this color on the screen. |
guint16 |
The red component of the color. This is a value between 0 and 65535, with 65535 indicating full intensitiy. |
guint16 |
The green component of the color. |
guint16 |
The blue component of the color. |
typedef struct { gint GSEAL (size); GdkColor *GSEAL (colors); } GdkColormap;
The colormap structure contains the following public fields.
GdkColormap* gdk_colormap_new (GdkVisual *visual
,gboolean allocate
);
Creates a new colormap for the given visual.
|
a GdkVisual. |
|
if TRUE , the newly created colormap will be
a private colormap, and all colors in it will be
allocated for the applications use.
|
Returns : |
the new GdkColormap. |
GdkColormap* gdk_colormap_get_system (void
);
Gets the system's default colormap for the default screen. (See
gdk_colormap_get_system_for_screen()
)
Returns : |
the default colormap. |
gint gdk_colormap_alloc_colors (GdkColormap *colormap
,GdkColor *colors
,gint n_colors
,gboolean writeable
,gboolean best_match
,gboolean *success
);
Allocates colors from a colormap.
|
a GdkColormap. |
|
The color values to allocate. On return, the pixel values for allocated colors will be filled in. |
|
The number of colors in colors .
|
|
this parameter has no effect, and it's here for mere compatibility. |
|
If TRUE , GDK will attempt to do matching against
existing colors if the colors cannot be allocated as requested.
|
|
An array of length ncolors . On return, this
indicates whether the corresponding color in colors was
successfully allocated or not.
|
Returns : |
The number of colors that were not successfully allocated. |
gboolean gdk_colormap_alloc_color (GdkColormap *colormap
,GdkColor *color
,gboolean writeable
,gboolean best_match
);
Allocates a single color from a colormap.
|
a GdkColormap. |
|
the color to allocate. On return the
pixel field will be
filled in if allocation succeeds.
|
|
this parameter has no effect, and it's here for mere compatibility. |
|
If TRUE , GDK will attempt to do matching against
existing colors if the color cannot be allocated as requested.
|
Returns : |
TRUE if the allocation succeeded.
|
void gdk_colormap_free_colors (GdkColormap *colormap
,const GdkColor *colors
,gint n_colors
);
Frees previously allocated colors.
|
a GdkColormap. |
|
the colors to free. |
|
the number of colors in colors .
|
GdkVisual * gdk_colormap_get_visual (GdkColormap *colormap
);
Returns the visual for which a given colormap was created.
|
a GdkColormap. |
Returns : |
the visual of the colormap. |
GdkScreen * gdk_colormap_get_screen (GdkColormap *cmap
);
Gets the screen for which this colormap was created.
|
a GdkColormap |
Returns : |
the screen for which this colormap was created. |
Since 2.2
GdkColor * gdk_color_copy (const GdkColor *color
);
Makes a copy of a color structure. The result
must be freed using gdk_color_free()
.
|
a GdkColor. |
Returns : |
a copy of color .
|
void gdk_color_free (GdkColor *color
);
Frees a color structure created with
gdk_color_copy()
.
|
a GdkColor. |
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 color is not allocated, you
must call gdk_colormap_alloc_color()
yourself. 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')
gboolean gdk_color_equal (const GdkColor *colora
,const GdkColor *colorb
);
Compares two colors.
guint gdk_color_hash (const GdkColor *colora
);
A hash function suitable for using for a hash table that stores GdkColor's.
|
a GdkColor. |
Returns : |
The hash function applied to colora
|
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.
|
a GdkColor |
Returns : |
a newly-allocated text string |
Since 2.12