aboutsummaryrefslogtreecommitdiff
path: root/generic/Reticle.c
diff options
context:
space:
mode:
authorlecoanet2002-02-18 16:03:54 +0000
committerlecoanet2002-02-18 16:03:54 +0000
commit6b36f92065f054abd810d956169a87180677d4f7 (patch)
treed2d16c8be93c67d15670eccce326dba5276acda1 /generic/Reticle.c
parent67dd05047282a179b5fac88564bb3494a69ecd23 (diff)
downloadtkzinc-6b36f92065f054abd810d956169a87180677d4f7.zip
tkzinc-6b36f92065f054abd810d956169a87180677d4f7.tar.gz
tkzinc-6b36f92065f054abd810d956169a87180677d4f7.tar.bz2
tkzinc-6b36f92065f054abd810d956169a87180677d4f7.tar.xz
Passage des couleurs en gradients pour uniformiser
Diffstat (limited to 'generic/Reticle.c')
-rw-r--r--generic/Reticle.c59
1 files changed, 30 insertions, 29 deletions
diff --git a/generic/Reticle.c b/generic/Reticle.c
index 1224e05..469bf9b 100644
--- a/generic/Reticle.c
+++ b/generic/Reticle.c
@@ -52,25 +52,25 @@ typedef struct _ReticleItemStruct {
ItemStruct header;
/* Public data */
- ZnPoint pos; /* Origin world coordinates */
- ZnColor line_color; /* circle color */
- ZnColor bright_line_color; /* intermediate circle color */
- ZnDim first_radius; /* first world radius */
- ZnDim step_size; /* step world size */
- int period; /* bright circle period */
- int num_circles; /* num cercles max */
- LineStyle line_style; /* circles lines styles */
- LineStyle bright_line_style;
+ ZnPoint pos; /* Origin world coordinates */
+ ZnGradient *line_color; /* circle color */
+ ZnGradient *bright_line_color; /* intermediate circle color */
+ ZnDim first_radius; /* first world radius */
+ ZnDim step_size; /* step world size */
+ int period; /* bright circle period */
+ int num_circles; /* num cercles max */
+ LineStyle line_style; /* circles lines styles */
+ LineStyle bright_line_style;
/* Private data */
- ZnPoint dev; /* item device coordinate */
- ZnDim first_radius_dev; /* first device radius */
- ZnDim step_size_dev; /* steps device size */
+ ZnPoint dev; /* item device coordinate */
+ ZnDim first_radius_dev; /* first device radius */
+ ZnDim step_size_dev; /* steps device size */
} ReticleItemStruct, *ReticleItem;
static ZnAttrConfig reticle_attrs[] = {
- { ZN_CONFIG_COLOR, "-brightlinecolor", NULL,
+ { ZN_CONFIG_GRADIENT, "-brightlinecolor", NULL,
Tk_Offset(ReticleItemStruct, bright_line_color), 0, ZN_DRAW_FLAG, False },
{ ZN_CONFIG_LINE_STYLE, "-brightlinestyle", NULL,
Tk_Offset(ReticleItemStruct, bright_line_style), 0, ZN_DRAW_FLAG, False },
@@ -86,7 +86,7 @@ static ZnAttrConfig reticle_attrs[] = {
{ ZN_CONFIG_DIM, "-firstradius", NULL,
Tk_Offset(ReticleItemStruct, first_radius), 0,
ZN_COORDS_FLAG, False },
- { ZN_CONFIG_COLOR, "-linecolor", NULL,
+ { ZN_CONFIG_GRADIENT, "-linecolor", NULL,
Tk_Offset(ReticleItemStruct, line_color), 0, ZN_DRAW_FLAG, False },
{ ZN_CONFIG_LINE_STYLE, "-linestyle", NULL,
Tk_Offset(ReticleItemStruct, line_style), 0, ZN_DRAW_FLAG, False },
@@ -135,8 +135,8 @@ Init(Item item,
SET(item->flags, COMPOSE_SCALE_BIT);
item->priority = DEFAULT_RETICLE_PRIORITY;
item->part_sensitive = 0;
- reticle->line_color = ZnGetColorByValue(wi->win, wi->fore_color);
- reticle->bright_line_color = ZnGetColorByValue(wi->win, wi->fore_color);
+ reticle->line_color = ZnGetGradientByValue(wi->fore_gradient);
+ reticle->bright_line_color = ZnGetGradientByValue(wi->fore_gradient);
reticle->first_radius = DEFAULT_RETICLE_STEP_SIZE;
reticle->step_size = DEFAULT_RETICLE_STEP_SIZE;
reticle->period = DEFAULT_RETICLE_PERIOD;
@@ -167,9 +167,8 @@ Clone(Item item)
WidgetInfo *wi = item->wi;
ReticleItem reticle = (ReticleItem) item;
- reticle->line_color = ZnGetColorByValue(wi->win, reticle->line_color);
- reticle->bright_line_color = ZnGetColorByValue(wi->win,
- reticle->bright_line_color);
+ reticle->line_color = ZnGetGradientByValue(reticle->line_color);
+ reticle->bright_line_color = ZnGetGradientByValue(reticle->bright_line_color);
}
@@ -185,8 +184,8 @@ Destroy(Item item)
{
ReticleItem reticle = (ReticleItem) item;
- ZnFreeColor(reticle->line_color);
- ZnFreeColor(reticle->bright_line_color);
+ ZnFreeGradient(reticle->line_color);
+ ZnFreeGradient(reticle->bright_line_color);
}
@@ -338,7 +337,7 @@ Draw(Item item)
while (radius <= radius_max_dev) {
SetLineStyle(wi, reticle->line_style);
- values.foreground = ZnPixel(reticle->line_color);
+ values.foreground = ZnPixel(ZnGetGradientColor(reticle->line_color, 0, NULL));
values.line_width = 0;
values.fill_style = FillSolid;
XChangeGC(wi->dpy, wi->gc, GCForeground | GCLineWidth | GCFillStyle, &values);
@@ -361,7 +360,7 @@ Draw(Item item)
(reticle->dev.y >= wi->damaged_area.orig.y - radius) &&
(reticle->dev.y <= wi->damaged_area.corner.y + radius)) {
SetLineStyle(wi, reticle->bright_line_style);
- values.foreground = ZnPixel(reticle->bright_line_color);
+ values.foreground = ZnPixel(ZnGetGradientColor(reticle->bright_line_color, 0, NULL));
values.line_width = 0;
values.fill_style = FillSolid;
XChangeGC(wi->dpy, wi->gc, GCForeground | GCLineWidth | GCFillStyle, &values);
@@ -394,7 +393,8 @@ Render(Item item)
unsigned int i, j;
ZnPoint *genarc;
int num_p, alpha;
-
+ XColor *color;
+
xo = reticle->dev.x;
yo = reticle->dev.y;
/* Compute radius max */
@@ -430,13 +430,13 @@ Render(Item item)
(reticle->num_circles - 1) * reticle->step_size_dev);
}
- alpha = 65535*wi->alpha/100;
genarc = GetCirclePoints(3, ZN_CIRCLE_FINEST, 0, 360, &num_p, NULL);
glLineWidth(1);
while (radius <= radius_max_dev) {
SetLineStyle(wi, reticle->line_style);
- glColor4us(reticle->line_color->red, reticle->line_color->green,
- reticle->line_color->blue, alpha);
+ color = ZnGetGradientColor(reticle->line_color, 0, &alpha);
+ alpha = ZnComposeAlpha(alpha, wi->alpha);
+ glColor4us(color->red, color->green, color->blue, alpha);
for (i = 1; (radius <= radius_max_dev && i < reticle->period); i++) {
if ((xo >= wi->damaged_area.orig.x - radius) &&
(xo <= wi->damaged_area.corner.x + radius) &&
@@ -458,8 +458,9 @@ Render(Item item)
(yo >= wi->damaged_area.orig.y - radius) &&
(yo <= wi->damaged_area.corner.y + radius)) {
SetLineStyle(wi, reticle->bright_line_style);
- glColor4us(reticle->bright_line_color->red, reticle->bright_line_color->green,
- reticle->bright_line_color->blue, alpha);
+ color = ZnGetGradientColor(reticle->bright_line_color, 0, &alpha);
+ alpha = ZnComposeAlpha(alpha, wi->alpha);
+ glColor4us(color->red, color->green, color->blue, alpha);
glBegin(GL_LINE_LOOP);
for (j = 0; j < num_p; j++) {
x = xo + genarc[j].x * radius;