Color implemtnation
svn path=/trunk/; revision=373
This commit is contained in:
67
widgets/misc/e-colors.c
Normal file
67
widgets/misc/e-colors.c
Normal file
@ -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);
|
||||
}
|
14
widgets/misc/e-colors.h
Normal file
14
widgets/misc/e-colors.h
Normal file
@ -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
|
Reference in New Issue
Block a user