diff options
author | Arturo Espinosa <unammx@src.gnome.org> | 1998-09-12 08:32:51 +0800 |
---|---|---|
committer | Arturo Espinosa <unammx@src.gnome.org> | 1998-09-12 08:32:51 +0800 |
commit | 5716777409d7c05331e32cc4450719b7548079ea (patch) | |
tree | 2b1c06405fd59eb8010d1979e8fa8e6cfbcc1e8b | |
parent | a05ffdfc3954f3df460fdb14a49cb23dbc24e001 (diff) | |
download | gsoc2013-evolution-5716777409d7c05331e32cc4450719b7548079ea.tar gsoc2013-evolution-5716777409d7c05331e32cc4450719b7548079ea.tar.gz gsoc2013-evolution-5716777409d7c05331e32cc4450719b7548079ea.tar.bz2 gsoc2013-evolution-5716777409d7c05331e32cc4450719b7548079ea.tar.lz gsoc2013-evolution-5716777409d7c05331e32cc4450719b7548079ea.tar.xz gsoc2013-evolution-5716777409d7c05331e32cc4450719b7548079ea.tar.zst gsoc2013-evolution-5716777409d7c05331e32cc4450719b7548079ea.zip |
Color implemtnation
svn path=/trunk/; revision=373
-rw-r--r-- | widgets/misc/e-colors.c | 67 | ||||
-rw-r--r-- | widgets/misc/e-colors.h | 14 |
2 files changed, 81 insertions, 0 deletions
diff --git a/widgets/misc/e-colors.c b/widgets/misc/e-colors.c new file mode 100644 index 0000000000..4d09ecfa85 --- /dev/null +++ b/widgets/misc/e-colors.c @@ -0,0 +1,67 @@ +/* + * color.c: Color allocation on the Gnumeric spreadsheet + * + * Author: + * Miguel de Icaza (miguel@kernel.org) + * + * We keep our own color context, as the color allocation might take place + * before any of our Canvases are realized. + */ +#include <config.h> +#include <gnome.h> +#include "color.h" + +static int color_inited; +GdkColorContext *gnumeric_color_context; + +int +color_alloc (gushort red, gushort green, gushort blue) +{ + int failed; + + if (!color_inited) + color_init (); + + return gdk_color_context_get_pixel (gnumeric_color_context, + red, green, blue, &failed); +} + +void +color_alloc_gdk (GdkColor *c) +{ + int failed; + + g_return_if_fail (c != NULL); + + c->pixel = gdk_color_context_get_pixel (gnumeric_color_context, c->red, c->green, c->blue, &failed); +} + +void +color_alloc_name (char *name, GdkColor *c) +{ + int failed; + + g_return_if_fail (name != NULL); + g_return_if_fail (c != NULL); + + gdk_color_parse (name, c); + c->pixel = 0; + c->pixel = gdk_color_context_get_pixel (gnumeric_color_context, c->red, c->green, c->blue, &failed); +} + +void +color_init (void) +{ + GdkColormap *colormap = gtk_widget_get_default_colormap (); + + /* Initialize the color context */ + gnumeric_color_context = gdk_color_context_new ( + gtk_widget_get_default_visual (), colormap); + + /* Allocate the default colors */ + gdk_color_white (colormap, &gs_white); + gdk_color_black (colormap, &gs_black); + + color_alloc_name ("gray60", &gs_light_gray); + color_alloc_name ("gray20", &gs_dark_gray); +} diff --git a/widgets/misc/e-colors.h b/widgets/misc/e-colors.h new file mode 100644 index 0000000000..738d0aec55 --- /dev/null +++ b/widgets/misc/e-colors.h @@ -0,0 +1,14 @@ +#ifndef COLOR_H +#define COLOR_H + +void color_init (void); + +/* Return the pixel value for the given red, green and blue */ +int color_alloc (gushort red, gushort green, gushort blue); +void color_alloc_name (char *name, GdkColor *color); +void color_alloc_gdk (GdkColor *color); + +/* Colors used by any GnumericSheet item */ +extern GdkColor gs_white, gs_light_gray, gs_dark_gray, gs_black; + +#endif |