summaryrefslogtreecommitdiff
path: root/libnautilus-extensions/nautilus-gnome-extensions.c
diff options
context:
space:
mode:
authorAndy Hertzfeld <andy@src.gnome.org>2000-06-07 08:40:51 +0000
committerAndy Hertzfeld <andy@src.gnome.org>2000-06-07 08:40:51 +0000
commit89a131c9381a7e6ab9022b7d2a817c85f526a746 (patch)
treee94370c5671929f80db1fc100f79bb4e182c1e3c /libnautilus-extensions/nautilus-gnome-extensions.c
parent37b28675256a5478cc5e51c07abb0e6847a5b254 (diff)
downloadnautilus-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.c14
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;