[mutter] theme: Port from GdkColor to GdkRGBA
- From: Florian MÃllner <fmuellner src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] theme: Port from GdkColor to GdkRGBA
- Date: Fri, 8 Jul 2011 19:41:44 +0000 (UTC)
commit ce1369609fb52b97cb4493ba9c1e53e383b320e3
Author: Florian MÃllner <fmuellner gnome org>
Date: Tue May 17 20:50:40 2011 +0200
theme: Port from GdkColor to GdkRGBA
GdkColor is about to be deprecated, so move to GdkRGBA instead.
https://bugzilla.gnome.org/show_bug.cgi?id=650586
src/ui/frames.c | 7 +--
src/ui/theme-private.h | 8 ++--
src/ui/theme.c | 132 ++++++++++++++++++------------------------------
3 files changed, 57 insertions(+), 90 deletions(-)
---
diff --git a/src/ui/frames.c b/src/ui/frames.c
index ccb7624..d9e2bca 100644
--- a/src/ui/frames.c
+++ b/src/ui/frames.c
@@ -2612,7 +2612,7 @@ meta_frames_set_window_background (MetaFrames *frames,
if (frame_exists && style->window_background_color != NULL)
{
- GdkColor color;
+ GdkRGBA color;
GdkVisual *visual;
meta_color_spec_render (style->window_background_color,
@@ -2624,11 +2624,10 @@ meta_frames_set_window_background (MetaFrames *frames,
visual = gtk_widget_get_visual (GTK_WIDGET (frames));
if (gdk_visual_get_depth (visual) == 32) /* we have ARGB */
{
- color.pixel = (color.pixel & 0xffffff) &
- style->window_background_alpha << 24;
+ color.alpha = style->window_background_alpha / 255.0;
}
- gdk_window_set_background (frame->window, &color);
+ gdk_window_set_background_rgba (frame->window, &color);
}
else
{
diff --git a/src/ui/theme-private.h b/src/ui/theme-private.h
index 338a518..92b9b21 100644
--- a/src/ui/theme-private.h
+++ b/src/ui/theme-private.h
@@ -304,7 +304,7 @@ struct _MetaColorSpec
union
{
struct {
- GdkColor color;
+ GdkRGBA color;
} basic;
struct {
MetaGtkColorComponent component;
@@ -315,13 +315,13 @@ struct _MetaColorSpec
MetaColorSpec *background;
double alpha;
- GdkColor color;
+ GdkRGBA color;
} blend;
struct {
MetaColorSpec *base;
double factor;
- GdkColor color;
+ GdkRGBA color;
} shade;
} data;
};
@@ -962,7 +962,7 @@ MetaColorSpec* meta_color_spec_new_gtk (MetaGtkColorComponent component,
void meta_color_spec_free (MetaColorSpec *spec);
void meta_color_spec_render (MetaColorSpec *spec,
GtkStyleContext *style_gtk,
- GdkColor *color);
+ GdkRGBA *color);
MetaDrawOp* meta_draw_op_new (MetaDrawType type);
diff --git a/src/ui/theme.c b/src/ui/theme.c
index 86b2b29..f040790 100644
--- a/src/ui/theme.c
+++ b/src/ui/theme.c
@@ -63,14 +63,14 @@
#define GDK_COLOR_RGBA(color) \
((guint32) (0xff | \
- (((color).red / 256) << 24) | \
- (((color).green / 256) << 16) | \
- (((color).blue / 256) << 8)))
+ ((int)((color).red * 255) << 24) | \
+ ((int)((color).green * 255) << 16) | \
+ ((int)((color).blue * 255) << 8)))
#define GDK_COLOR_RGB(color) \
- ((guint32) ((((color).red / 256) << 16) | \
- (((color).green / 256) << 8) | \
- (((color).blue / 256))))
+ ((guint32) (((int)((color).red * 255) << 16) | \
+ ((int)((color).green * 255) << 8) | \
+ ((int)((color).blue * 255))))
#define ALPHA_TO_UCHAR(d) ((unsigned char) ((d) * 255))
@@ -78,8 +78,8 @@
#define CLAMP_UCHAR(v) ((guchar) (CLAMP (((int)v), (int)0, (int)255)))
#define INTENSITY(r, g, b) ((r) * 0.30 + (g) * 0.59 + (b) * 0.11)
-static void gtk_style_shade (GdkColor *a,
- GdkColor *b,
+static void gtk_style_shade (GdkRGBA *a,
+ GdkRGBA *b,
gdouble k);
static void rgb_to_hls (gdouble *r,
gdouble *g,
@@ -95,7 +95,7 @@ static MetaTheme *meta_current_theme = NULL;
static GdkPixbuf *
colorize_pixbuf (GdkPixbuf *orig,
- GdkColor *new_color)
+ GdkRGBA *new_color)
{
GdkPixbuf *pixbuf;
double intensity;
@@ -138,16 +138,16 @@ colorize_pixbuf (GdkPixbuf *orig,
if (intensity <= 0.5)
{
/* Go from black at intensity = 0.0 to new_color at intensity = 0.5 */
- dr = (new_color->red * intensity * 2.0) / 65535.0;
- dg = (new_color->green * intensity * 2.0) / 65535.0;
- db = (new_color->blue * intensity * 2.0) / 65535.0;
+ dr = new_color->red * intensity * 2.0;
+ dg = new_color->green * intensity * 2.0;
+ db = new_color->blue * intensity * 2.0;
}
else
{
/* Go from new_color at intensity = 0.5 to white at intensity = 1.0 */
- dr = (new_color->red + (65535 - new_color->red) * (intensity - 0.5) * 2.0) / 65535.0;
- dg = (new_color->green + (65535 - new_color->green) * (intensity - 0.5) * 2.0) / 65535.0;
- db = (new_color->blue + (65535 - new_color->blue) * (intensity - 0.5) * 2.0) / 65535.0;
+ dr = new_color->red + (1.0 - new_color->red) * (intensity - 0.5) * 2.0;
+ dg = new_color->green + (1.0 - new_color->green) * (intensity - 0.5) * 2.0;
+ db = new_color->blue + (1.0 - new_color->blue) * (intensity - 0.5) * 2.0;
}
dest[0] = CLAMP_UCHAR (255 * dr);
@@ -172,18 +172,15 @@ colorize_pixbuf (GdkPixbuf *orig,
}
static void
-color_composite (const GdkColor *bg,
- const GdkColor *fg,
- double alpha_d,
- GdkColor *color)
+color_composite (const GdkRGBA *bg,
+ const GdkRGBA *fg,
+ double alpha,
+ GdkRGBA *color)
{
- guint16 alpha;
-
*color = *bg;
- alpha = alpha_d * 0xffff;
- color->red = color->red + (((fg->red - color->red) * alpha + 0x8000) >> 16);
- color->green = color->green + (((fg->green - color->green) * alpha + 0x8000) >> 16);
- color->blue = color->blue + (((fg->blue - color->blue) * alpha + 0x8000) >> 16);
+ color->red = color->red + (fg->red - color->red) * alpha;
+ color->green = color->green + (fg->green - color->green) * alpha;
+ color->blue = color->blue + (fg->blue - color->blue) * alpha;
}
/**
@@ -1036,12 +1033,7 @@ meta_gradient_spec_render (const MetaGradientSpec *spec,
tmp = spec->color_specs;
while (tmp != NULL)
{
- GdkColor gdk_color;
- meta_color_spec_render (tmp->data, style, &gdk_color);
-
- colors[i].red = gdk_color.red / 65535.;
- colors[i].green = gdk_color.green / 65535.;
- colors[i].blue = gdk_color.blue / 65535.;
+ meta_color_spec_render (tmp->data, style, &colors[i]);
tmp = tmp->next;
++i;
@@ -1386,7 +1378,7 @@ meta_color_spec_new_from_string (const char *str,
{
spec = meta_color_spec_new (META_COLOR_SPEC_BASIC);
- if (!gdk_color_parse (str, &spec->data.basic.color))
+ if (!gdk_rgba_parse (&spec->data.basic.color, str))
{
g_set_error (err, META_THEME_ERROR,
META_THEME_ERROR_FAILED,
@@ -1424,12 +1416,11 @@ meta_color_spec_new_gtk (MetaGtkColorComponent component,
#define LIGHTNESS_MULT 1.3
#define DARKNESS_MULT 0.7
static void
-meta_set_color_from_style (GdkColor *color,
+meta_set_color_from_style (GdkRGBA *color,
GtkStyleContext *context,
GtkStateType state,
MetaGtkColorComponent component)
{
- GdkRGBA *rgba_color = NULL;
GtkStateFlags flags;
switch (state)
@@ -1457,48 +1448,25 @@ meta_set_color_from_style (GdkColor *color,
case META_GTK_COLOR_MID:
case META_GTK_COLOR_LIGHT:
case META_GTK_COLOR_DARK:
- gtk_style_context_get (context, flags,
- "background-color", &rgba_color,
- NULL);
+ gtk_style_context_get_background_color (context, flags, color);
break;
case META_GTK_COLOR_FG:
case META_GTK_COLOR_TEXT:
case META_GTK_COLOR_TEXT_AA:
- gtk_style_context_get (context, flags,
- "color", &rgba_color,
- NULL);
+ gtk_style_context_get_color (context, flags, color);
break;
case META_GTK_COLOR_LAST:
g_assert_not_reached ();
break;
}
- if (rgba_color)
- {
- color->pixel = 0;
- color->red = CLAMP ((guint) (rgba_color->red * 65535), 0, 65535);
- color->green = CLAMP ((guint) (rgba_color->green * 65535), 0, 65535);
- color->blue = CLAMP ((guint) (rgba_color->blue * 65535), 0, 65535);
- gdk_rgba_free (rgba_color);
- }
- else
- {
- meta_warning (_("Failed to retrieve color %s[%s] from GTK+ theme.\n"),
- meta_color_component_to_string (component),
- meta_gtk_state_to_string (state));
- color->pixel = 0;
- color->red = component == META_GTK_COLOR_TEXT ? 0 : 65535;
- color->green = 0;
- color->blue = component == META_GTK_COLOR_TEXT ? 0 : 65535;
- }
-
if (component == META_GTK_COLOR_LIGHT)
gtk_style_shade (color, color, LIGHTNESS_MULT);
else if (component == META_GTK_COLOR_DARK)
gtk_style_shade (color, color, DARKNESS_MULT);
else if (component == META_GTK_COLOR_MID)
{
- GdkColor light, dark;
+ GdkRGBA light, dark;
gtk_style_shade (color, &light, LIGHTNESS_MULT);
gtk_style_shade (color, &dark, DARKNESS_MULT);
@@ -1509,7 +1477,7 @@ meta_set_color_from_style (GdkColor *color,
}
else if (component == META_GTK_COLOR_TEXT_AA)
{
- GdkColor base;
+ GdkRGBA base;
meta_set_color_from_style (&base, context, state, META_GTK_COLOR_BASE);
color->red = (color->red + base.red) / 2;
@@ -1521,7 +1489,7 @@ meta_set_color_from_style (GdkColor *color,
void
meta_color_spec_render (MetaColorSpec *spec,
GtkStyleContext *context,
- GdkColor *color)
+ GdkRGBA *color)
{
g_return_if_fail (spec != NULL);
g_return_if_fail (GTK_IS_STYLE_CONTEXT (context));
@@ -1541,7 +1509,7 @@ meta_color_spec_render (MetaColorSpec *spec,
case META_COLOR_SPEC_BLEND:
{
- GdkColor bg, fg;
+ GdkRGBA bg, fg;
meta_color_spec_render (spec->data.blend.background, context, &bg);
meta_color_spec_render (spec->data.blend.foreground, context, &fg);
@@ -3348,7 +3316,7 @@ draw_op_as_pixbuf (const MetaDrawOp *op,
case META_DRAW_RECTANGLE:
if (op->data.rectangle.filled)
{
- GdkColor color;
+ GdkRGBA color;
meta_color_spec_render (op->data.rectangle.color_spec,
context,
@@ -3370,7 +3338,7 @@ draw_op_as_pixbuf (const MetaDrawOp *op,
case META_DRAW_TINT:
{
- GdkColor color;
+ GdkRGBA color;
guint32 rgba;
gboolean has_alpha;
@@ -3431,7 +3399,7 @@ draw_op_as_pixbuf (const MetaDrawOp *op,
{
if (op->data.image.colorize_spec)
{
- GdkColor color;
+ GdkRGBA color;
meta_color_spec_render (op->data.image.colorize_spec,
context, &color);
@@ -3590,7 +3558,7 @@ meta_draw_op_draw_with_env (const MetaDrawOp *op,
MetaRectangle rect,
MetaPositionExprEnv *env)
{
- GdkColor color;
+ GdkRGBA color;
cairo_save (cr);
gtk_style_context_save (style_gtk);
@@ -3604,7 +3572,7 @@ meta_draw_op_draw_with_env (const MetaDrawOp *op,
int x1, x2, y1, y2;
meta_color_spec_render (op->data.line.color_spec, style_gtk, &color);
- gdk_cairo_set_source_color (cr, &color);
+ gdk_cairo_set_source_rgba (cr, &color);
if (op->data.line.width > 0)
cairo_set_line_width (cr, op->data.line.width);
@@ -3680,7 +3648,7 @@ meta_draw_op_draw_with_env (const MetaDrawOp *op,
meta_color_spec_render (op->data.rectangle.color_spec,
style_gtk, &color);
- gdk_cairo_set_source_color (cr, &color);
+ gdk_cairo_set_source_rgba (cr, &color);
rx = parse_x_position_unchecked (op->data.rectangle.x, env);
ry = parse_y_position_unchecked (op->data.rectangle.y, env);
@@ -3710,7 +3678,7 @@ meta_draw_op_draw_with_env (const MetaDrawOp *op,
double center_x, center_y;
meta_color_spec_render (op->data.arc.color_spec, style_gtk, &color);
- gdk_cairo_set_source_color (cr, &color);
+ gdk_cairo_set_source_rgba (cr, &color);
rx = parse_x_position_unchecked (op->data.arc.x, env);
ry = parse_y_position_unchecked (op->data.arc.y, env);
@@ -3766,7 +3734,7 @@ meta_draw_op_draw_with_env (const MetaDrawOp *op,
{
meta_color_spec_render (op->data.tint.color_spec,
style_gtk, &color);
- gdk_cairo_set_source_color (cr, &color);
+ gdk_cairo_set_source_rgba (cr, &color);
cairo_rectangle (cr, rx, ry, rwidth, rheight);
cairo_fill (cr);
@@ -3940,7 +3908,7 @@ meta_draw_op_draw_with_env (const MetaDrawOp *op,
meta_color_spec_render (op->data.title.color_spec,
style_gtk, &color);
- gdk_cairo_set_source_color (cr, &color);
+ gdk_cairo_set_source_rgba (cr, &color);
rx = parse_x_position_unchecked (op->data.title.x, env);
ry = parse_y_position_unchecked (op->data.title.y, env);
@@ -6557,17 +6525,17 @@ meta_image_fill_type_to_string (MetaImageFillType fill_type)
* \param k amount to scale lightness and saturation by
*/
static void
-gtk_style_shade (GdkColor *a,
- GdkColor *b,
+gtk_style_shade (GdkRGBA *a,
+ GdkRGBA *b,
gdouble k)
{
gdouble red;
gdouble green;
gdouble blue;
- red = (gdouble) a->red / 65535.0;
- green = (gdouble) a->green / 65535.0;
- blue = (gdouble) a->blue / 65535.0;
+ red = a->red;
+ green = a->green;
+ blue = a->blue;
rgb_to_hls (&red, &green, &blue);
@@ -6585,9 +6553,9 @@ gtk_style_shade (GdkColor *a,
hls_to_rgb (&red, &green, &blue);
- b->red = red * 65535.0;
- b->green = green * 65535.0;
- b->blue = blue * 65535.0;
+ b->red = red;
+ b->green = green;
+ b->blue = blue;
}
/**
@@ -6774,7 +6742,7 @@ draw_bg_solid_composite (const MetaTextureSpec *bg,
int width,
int height)
{
- GdkColor bg_color;
+ GdkRGBA bg_color;
g_assert (bg->type == META_TEXTURE_SOLID);
g_assert (fg->type != META_TEXTURE_COMPOSITE);
@@ -6788,7 +6756,7 @@ draw_bg_solid_composite (const MetaTextureSpec *bg,
{
case META_TEXTURE_SOLID:
{
- GdkColor fg_color;
+ GdkRGBA fg_color;
meta_color_spec_render (fg->data.solid.color_spec,
widget,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]