diff options
author | Andy Hertzfeld <andy@src.gnome.org> | 2000-06-07 08:40:51 +0000 |
---|---|---|
committer | Andy Hertzfeld <andy@src.gnome.org> | 2000-06-07 08:40:51 +0000 |
commit | 89a131c9381a7e6ab9022b7d2a817c85f526a746 (patch) | |
tree | e94370c5671929f80db1fc100f79bb4e182c1e3c /libnautilus-extensions/nautilus-gnome-extensions.c | |
parent | 37b28675256a5478cc5e51c07abb0e6847a5b254 (diff) | |
download | nautilus-89a131c9381a7e6ab9022b7d2a817c85f526a746.tar.gz |
more work on gradient background on the anti-aliased canvas; vertical
more work on gradient background on the anti-aliased canvas; vertical
gradients are working now, but horizontal ones still aren't
Diffstat (limited to 'libnautilus-extensions/nautilus-gnome-extensions.c')
-rw-r--r-- | libnautilus-extensions/nautilus-gnome-extensions.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/libnautilus-extensions/nautilus-gnome-extensions.c b/libnautilus-extensions/nautilus-gnome-extensions.c index deea2a82a..eb2fa3d65 100644 --- a/libnautilus-extensions/nautilus-gnome-extensions.c +++ b/libnautilus-extensions/nautilus-gnome-extensions.c @@ -212,9 +212,10 @@ nautilus_gnome_canvas_item_get_world_bounds (GnomeCanvasItem *item, void nautilus_gnome_canvas_fill_with_gradient (GnomeCanvasBuf *buffer, + int entire_width, int entire_height, guint32 start_rgb, - guint32 end_rgb, - gboolean horizontal) + guint32 end_rgb, + gboolean horizontal) { GdkRectangle band_box; guchar *bufptr; @@ -234,7 +235,7 @@ nautilus_gnome_canvas_fill_with_gradient (GnomeCanvasBuf *buffer, band_box.y = buffer->rect.y0; band_box.width = buffer->rect.x1 - buffer->rect.x0; band_box.height = buffer->rect.y1 - buffer->rect.y0; - + position = horizontal ? &band_box.x : &band_box.y; size = horizontal ? &band_box.width : &band_box.height; @@ -248,7 +249,12 @@ nautilus_gnome_canvas_fill_with_gradient (GnomeCanvasBuf *buffer, /* Fill each band with a separate nautilus_draw_rectangle call. */ for (band = 0; band < num_bands; band++) { /* Compute a new color value for each band. */ - fraction = (double) *position / 2000; /* this is a temporary fudge */ + + if (horizontal) + fraction = (double) *position / (double) entire_width; + else + fraction = (double) *position / (double) entire_height; + band_rgb = nautilus_interpolate_color (fraction, start_rgb, end_rgb); red_value = band_rgb >> 16; green_value = (band_rgb >> 8) & 0xff; |