aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans-Christoph Steiner <eighthave@users.sourceforge.net>2012-03-08 00:01:20 +0000
committerIOhannes m zmölnig <zmoelnig@iem.at>2015-10-14 15:23:30 +0200
commitb0561476cfcf98d7a1574f89037b7b14bfe1544c (patch)
tree7221e5665ae253a583f5de72520d7518d4bc33c7
parent4af100ae51803d44af9d7e52da4f9454b4721715 (diff)
allow negative indices in the values, xvalues, valuemotion, and xvaluemotion messages
svn path=/trunk/externals/unauthorized/; revision=16054
-rw-r--r--grid.c26
1 files changed, 17 insertions, 9 deletions
diff --git a/grid.c b/grid.c
index bcd5fa2..ad0fa32 100644
--- a/grid.c
+++ b/grid.c
@@ -35,7 +35,7 @@ static int gridcount=0;
static int guidebug=0;
static int pointsize = 5;
-static char *grid_version = "grid: version 0.8, written by Yves Degoyon (ydegoyon@free.fr)";
+static char *grid_version = "grid: version 0.9, written by Yves Degoyon (ydegoyon@free.fr)";
#define GRID_SYS_VGUI2(a,b) if (guidebug) \
post(a,b);\
@@ -476,12 +476,14 @@ static void grid_values(t_grid* x, t_floatarg xvalue, t_floatarg yvalue)
if (xvalue < x->x_min ) xvalue = x->x_min;
if (xvalue > x->x_max ) xvalue = x->x_max;
- x->x_current = text_xpix(&x->x_obj, x->x_glist) + ((xvalue - x->x_min) / x->x_max) * x->x_width;
+ x->x_current = text_xpix(&x->x_obj, x->x_glist)
+ + abs(((xvalue - x->x_min) / (x->x_max - x->x_min)) * x->x_width);
if (yvalue < x->y_min ) yvalue = x->y_min;
if (yvalue > x->y_max ) yvalue = x->y_max;
- x->y_current = text_ypix(&x->x_obj, x->x_glist) + (1 - ((yvalue - x->y_min) / x->y_max)) * x->x_height;
+ x->y_current = text_ypix(&x->x_obj, x->x_glist)
+ + abs((1 - (yvalue - x->y_min) / (x->y_max - x->y_min)) * x->x_height);
if(xold != x->x_current || yold != x->y_current)
{
@@ -498,12 +500,14 @@ static void grid_xvalues(t_grid* x, t_floatarg xvalue, t_floatarg yvalue)
if (xvalue < x->x_min ) xvalue = x->x_min;
if (xvalue > x->x_max ) xvalue = x->x_max;
- x->x_current = text_xpix(&x->x_obj, x->x_glist) + ((xvalue - x->x_min) / x->x_max) * x->x_width;
+ x->x_current = text_xpix(&x->x_obj, x->x_glist)
+ + abs(((xvalue - x->x_min) / (x->x_max - x->x_min)) * x->x_width);
if (yvalue < x->y_min ) yvalue = x->y_min;
if (yvalue > x->y_max ) yvalue = x->y_max;
- x->y_current = text_ypix(&x->x_obj, x->x_glist) + (1 - ((yvalue - x->y_min) / x->y_max)) * x->x_height;
+ x->y_current = text_ypix(&x->x_obj, x->x_glist)
+ + abs((1 - (yvalue - x->y_min) / (x->y_max - x->y_min)) * x->x_height);
if(xold != x->x_current || yold != x->y_current)
{
@@ -531,12 +535,14 @@ static void grid_valuemotion(t_grid* x, t_floatarg dx, t_floatarg dy)
if (xvalue < x->x_min ) xvalue = x->x_min;
if (xvalue > x->x_max ) xvalue = x->x_max;
- x->x_current = text_xpix(&x->x_obj, x->x_glist) + ((xvalue - x->x_min) / x->x_max) * x->x_width;
+ x->x_current = text_xpix(&x->x_obj, x->x_glist)
+ + abs(((xvalue - x->x_min) / (x->x_max - x->x_min)) * x->x_width);
if (yvalue < x->y_min ) yvalue = x->y_min;
if (yvalue > x->y_max ) yvalue = x->y_max;
- x->y_current = text_ypix(&x->x_obj, x->x_glist) + (1 - ((yvalue - x->y_min) / x->y_max)) * x->x_height;
+ x->y_current = text_ypix(&x->x_obj, x->x_glist)
+ + abs((1 - (yvalue - x->y_min) / (x->y_max - x->y_min)) * x->x_height);
if(xold != x->x_current || yold != x->y_current)
{
@@ -565,12 +571,14 @@ static void grid_xvaluemotion(t_grid* x, t_floatarg dx, t_floatarg dy)
if (xvalue < x->x_min ) xvalue = x->x_min;
if (xvalue > x->x_max ) xvalue = x->x_max;
- x->x_current = text_xpix(&x->x_obj, x->x_glist) + ((xvalue - x->x_min) / x->x_max) * x->x_width;
+ x->x_current = text_xpix(&x->x_obj, x->x_glist)
+ + abs(((xvalue - x->x_min) / (x->x_max - x->x_min)) * x->x_width);
if (yvalue < x->y_min ) yvalue = x->y_min;
if (yvalue > x->y_max ) yvalue = x->y_max;
- x->y_current = text_ypix(&x->x_obj, x->x_glist) + (1 - ((yvalue - x->y_min) / x->y_max)) * x->x_height;
+ x->y_current = text_ypix(&x->x_obj, x->x_glist)
+ + abs((1 - (yvalue - x->y_min) / (x->y_max - x->y_min)) * x->x_height);
if(xold != x->x_current || yold != x->y_current)
{