diff options
Diffstat (limited to 'generic/Icon.c')
-rw-r--r-- | generic/Icon.c | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/generic/Icon.c b/generic/Icon.c index 94e7bec..d824c0c 100644 --- a/generic/Icon.c +++ b/generic/Icon.c @@ -55,8 +55,8 @@ typedef struct _IconItemStruct { ZnAnchor anchor; ZnAnchor connection_anchor; Pixmap mask; /* Used only if the image is *NOT* specified */ - ZnColor color; /* Used only with the mask in GLX */ - int alpha; /* Used only with the image in GLX */ + ZnGradient *color; /* Used only with the mask in GLX (alpha part + * is always meaningful). */ /* Private data */ ZnPoint pos_dev; @@ -65,11 +65,9 @@ typedef struct _IconItemStruct { static ZnAttrConfig icon_attrs[] = { - { ZN_CONFIG_ALPHA, "-alpha", NULL, - Tk_Offset(IconItemStruct, alpha), 0, ZN_DRAW_FLAG, False }, { ZN_CONFIG_ANCHOR, "-anchor", NULL, Tk_Offset(IconItemStruct, anchor), 0, ZN_COORDS_FLAG, False }, - { ZN_CONFIG_COLOR, "-color", NULL, + { ZN_CONFIG_GRADIENT, "-color", NULL, Tk_Offset(IconItemStruct, color), 0, ZN_DRAW_FLAG, False }, { ZN_CONFIG_BOOL, "-composerotation", NULL, Tk_Offset(IconItemStruct, header.flags), COMPOSE_ROTATION_BIT, @@ -156,8 +154,7 @@ Init(Item item, icon->anchor = ZnAnchorNW; icon->connection_anchor = ZnAnchorSW; icon->mask = ZnUnspecifiedPattern; - icon->color = ZnGetColorByValue(wi->win, wi->fore_color); - icon->alpha = 100; + icon->color = ZnGetGradientByValue(wi->fore_gradient); return ZN_OK; } @@ -188,7 +185,7 @@ Clone(Item item) icon->mask = Tk_GetBitmap(wi->interp, wi->win, Tk_NameOfBitmap(wi->dpy, icon->mask)); } - icon->color = ZnGetColorByValue(wi->win, icon->color); + icon->color = ZnGetGradientByValue(icon->color); } @@ -216,7 +213,7 @@ Destroy(Item item) Tk_FreeBitmap(wi->dpy, icon->mask); icon->mask = ZnUnspecifiedPattern; } - ZnFreeColor(icon->color); + ZnFreeGradient(icon->color); } @@ -517,7 +514,7 @@ Draw(Item item) values.stipple = icon->mask; values.ts_x_origin = icon->pos_dev.x; values.ts_y_origin = icon->pos_dev.y; - values.foreground = ZnPixel(icon->color); + values.foreground = ZnPixel(ZnGetGradientColor(icon->color, 0, NULL)); gc_mask |= GCFillStyle | GCStipple | GCTileStipXOrigin | GCTileStipYOrigin | GCForeground; XChangeGC(wi->dpy, wi->gc, gc_mask, &values); XFillRectangle(wi->dpy, wi->draw_buffer, wi->gc, @@ -541,14 +538,13 @@ Render(Item item) WidgetInfo *wi = item->wi; IconItem icon = (IconItem) item; - if (icon->image != ZnUnspecifiedImage) { RenderImage(wi, GetImageTexture(wi->win, icon->image_name, icon->image), - NULL, icon->alpha, &icon->pos_dev); + icon->color, &icon->pos_dev, False); } else if (icon->mask != ZnUnspecifiedPattern) { RenderImage(wi, (ImageBits *) GetBitmapTexture(wi->dpy, icon->mask), - icon->color, icon->alpha, &icon->pos_dev); + icon->color, &icon->pos_dev, True); } #endif } |