aboutsummaryrefslogtreecommitdiff
path: root/grid
diff options
context:
space:
mode:
Diffstat (limited to 'grid')
-rw-r--r--grid/g_grid.h1
-rw-r--r--grid/grid.c65
2 files changed, 27 insertions, 39 deletions
diff --git a/grid/g_grid.h b/grid/g_grid.h
index e58da9f..9c89228 100644
--- a/grid/g_grid.h
+++ b/grid/g_grid.h
@@ -31,6 +31,7 @@ typedef struct _grid
t_float x_ystep; /* sets the step ( grain ) for y */
int x_xlines; /* number of vertical lines */
int x_ylines; /* number of horizontal lines */
+ char *x_bgcolor; /* background color */
} t_grid;
#endif
diff --git a/grid/grid.c b/grid/grid.c
index 87b749f..f3317b4 100644
--- a/grid/grid.c
+++ b/grid/grid.c
@@ -53,6 +53,10 @@ static char *grid_version = "grid: version 0.8, written by Yves Degoyon (ydego
post(a,b,c,d,e,f,g );\
sys_vgui(a,b,c,d,e,f,g)
+#define GRID_SYS_VGUI8(a,b,c,d,e,f,g,h) if (guidebug) \
+ post(a,b,c,d,e,f,g,h);\
+ sys_vgui(a,b,c,d,e,f,g,h)
+
#define GRID_SYS_VGUI9(a,b,c,d,e,f,g,h,i) if (guidebug) \
post(a,b,c,d,e,f,g,h,i );\
sys_vgui(a,b,c,d,e,f,g,h,i)
@@ -96,10 +100,10 @@ static void grid_draw_new(t_grid *x, t_glist *glist)
rtext_new(glist, (t_text *)x );
tagRoot = rtext_gettag(glist_findrtext(glist,(t_text *)x));
- GRID_SYS_VGUI7(".x%x.c create rectangle %d %d %d %d -fill #124392 -tags %xGRID\n",
+ GRID_SYS_VGUI8(".x%x.c create rectangle %d %d %d %d -fill %s -tags %xGRID\n",
canvas, text_xpix(&x->x_obj, glist), text_ypix(&x->x_obj, glist),
text_xpix(&x->x_obj, glist) + x->x_width, text_ypix(&x->x_obj, glist) + x->x_height,
- x);
+ x->x_bgcolor, x);
GRID_SYS_VGUI7(".x%x.c create rectangle %d %d %d %d -tags %so0\n",
canvas, text_xpix(&x->x_obj, glist), text_ypix(&x->x_obj, glist) + x->x_height+1,
text_xpix(&x->x_obj, glist)+7, text_ypix(&x->x_obj, glist) + x->x_height+2,
@@ -251,37 +255,6 @@ static void grid_output_current(t_grid* x)
outlet_float( x->x_youtlet, yvalue );
}
-/*az new method to change color */
-static void grid_draw_new_color(t_grid *x, t_glist *glist, char *col)
-{
- t_canvas *canvas=glist_getcanvas(glist);
- char *tagRoot;
- char str1[80];
-
- strcpy (str1,".x%x.c itemconfigure %xGRID -fill #");
- strcat (str1,col);
- strcat (str1,"\n");
- tagRoot = rtext_gettag(glist_findrtext(glist,(t_text *)x));
- GRID_SYS_VGUI3(str1, canvas, x);
- GRID_SYS_VGUI3(".x%x.c delete %so0\n", canvas, tagRoot);
- GRID_SYS_VGUI3(".x%x.c delete %so1\n", canvas, tagRoot);
- /*az redraw point if needed*/
- if ( x->x_point )
- {
- grid_draw_update(x, glist);
- }
- GRID_SYS_VGUI7(".x%x.c create rectangle %d %d %d %d -tags %so0\n",
- canvas, text_xpix(&x->x_obj, glist), text_ypix(&x->x_obj, glist) + x->x_height+1,
- text_xpix(&x->x_obj, glist)+7, text_ypix(&x->x_obj, glist) + x->x_height+2,
- tagRoot);
- GRID_SYS_VGUI7(".x%x.c create rectangle %d %d %d %d -tags %so1\n",
- canvas, text_xpix(&x->x_obj, glist)+x->x_width-7, text_ypix(&x->x_obj, glist) + x->x_height+1,
- text_xpix(&x->x_obj, glist)+x->x_width, text_ypix(&x->x_obj, glist) + x->x_height+2,
- tagRoot);
-
- canvas_fixlinesfor( canvas, (t_text*)x );
-}
-
/* ------------------------ grid widgetbehaviour----------------------------- */
@@ -465,9 +438,21 @@ static void grid_goto(t_grid *x, t_floatarg newx, t_floatarg newy)
static void grid_new_color(t_grid *x, t_floatarg color1, t_floatarg color2, t_floatarg color3)
{
- char col[30], col1[10], col2[10], col3[10];
+ char col1[10], col2[10], col3[10];
+
+ if ( ( color1 < 0 ) || ( color1 > 255 ) )
+ {
+ post( "wrong color component : %d", (int) color1 );
+ }
+ if ( ( color2 < 0 ) || ( color2 > 255 ) )
+ {
+ post( "wrong color component : %d", (int) color2 );
+ }
+ if ( ( color3 < 0 ) || ( color3 > 255 ) )
+ {
+ post( "wrong color component : %d", (int) color3 );
+ }
- sprintf(col1,"%X",(int) color1);
if (color1 < 17)
sprintf(col1,"0%X",(int) color1);
else
@@ -482,11 +467,10 @@ static void grid_new_color(t_grid *x, t_floatarg color1, t_floatarg color2, t_fl
sprintf(col3,"0%X",(int) color3);
else
sprintf(col3,"%X",(int) color3);
- strcpy( col, col1);
- strcat( col, col2 );
- strcat( col, col3 );
+ sprintf( x->x_bgcolor, "#%s%s%s", col1, col2, col3);
- grid_draw_new_color( x, x->x_glist, col);
+ grid_draw_erase( x, x->x_glist);
+ grid_draw_new( x, x->x_glist );
}
static void grid_values(t_grid* x, t_floatarg xvalue, t_floatarg yvalue)
@@ -684,6 +668,9 @@ static t_grid *grid_new(t_symbol *s, int argc, t_atom *argv)
x->x_xoutlet = outlet_new(&x->x_obj, &s_float );
x->x_youtlet = outlet_new(&x->x_obj, &s_float );
+ x->x_bgcolor = (char*)getbytes(12);
+ strcpy( x->x_bgcolor, "#123589" );
+
// post( "grid_new name : %s width: %d height : %d", x->x_name->s_name, x->x_width, x->x_height );
return (x);