Commit 49c5f337 authored by Ivica Bukvic's avatar Ivica Bukvic
Browse files

*fixed inconsistent display of array styles between pd-l2ork and vanilla....

*fixed inconsistent display of array styles between pd-l2ork and vanilla. LATER consider cleaning this up by adjusting g_canvas.h instead of all these workarounds.
parent c65b1a87
......@@ -442,8 +442,8 @@ t_garray *graph_array(t_glist *gl, t_symbol *s, int argc, t_atom *argv)
int flags = fflags;
int filestyle = ((flags & 6) >> 1);
//fprintf(stderr,"filestyle = %d\n", filestyle);
int style = (filestyle == 0 ? PLOTSTYLE_POINTS :
(filestyle == 1 ? PLOTSTYLE_POLY : filestyle));
int style = (filestyle == 0 ? PLOTSTYLE_POLY :
(filestyle == 1 ? PLOTSTYLE_POINTS : filestyle));
if (templateargsym != &s_float)
{
error("array %s: only 'float' type understood", templateargsym->s_name);
......@@ -536,10 +536,13 @@ void garray_properties(t_garray *x, t_glist *canvas)
/* create dialog window. LATER fix this to escape '$'
properly; right now we just detect a leading '$' and escape
it. There should be a systematic way of doing this. */
int filestyle = (x->x_style == 0 ? PLOTSTYLE_POLY :
(x->x_style == 1 ? PLOTSTYLE_POINTS : x->x_style));
//fprintf(stderr," garray_properties %d\n", filestyle);
sprintf(cmdbuf, ((x->x_name->s_name[0] == '$') ?
"pdtk_array_dialog %%s \\%s %d %d 0 .x%lx %s %s\n" :
"pdtk_array_dialog %%s %s %d %d 0 .x%lx %s %s\n"), x->x_name->s_name,
a->a_n, x->x_saveit + 2 * x->x_style + 8 * x->x_hidename +
a->a_n, x->x_saveit + 2 * filestyle + 8 * x->x_hidename +
16 * x->x_joc, (long unsigned int)glist_getcanvas(canvas),
x->x_fillcolor->s_name, x->x_outlinecolor->s_name);
gfxstub_new(&x->x_gobj.g_pd, x, cmdbuf);
......@@ -637,7 +640,9 @@ void garray_arraydialog(t_garray *x, t_symbol *s, int argc, t_atom *argv)
t_symbol *fill = atom_getsymbolarg(6, argc, argv);
t_symbol *outline = atom_getsymbolarg(7, argc, argv);
int saveit = ((flags & 1) != 0);
int style = ((flags & 6) >> 1);
int filestyle = ((flags & 6) >> 1);
int style = (filestyle == 0 ? PLOTSTYLE_POLY :
(filestyle == 1 ? PLOTSTYLE_POINTS : filestyle));
/* todo: revisit this filestyle business
if (style < 2) style = !style;
......@@ -967,6 +972,7 @@ static void array_motion(void *z, t_floatarg dx, t_floatarg dy)
array_motion_elemsize * array_motion_lastx),
1);
// here we block scalar from exceeding the array GOP edges
// LATER: see if we need to do the same for an x plot
if (graph)
{
if (graph->gl_y1 > graph->gl_y2)
......@@ -1448,8 +1454,8 @@ static void garray_save(t_gobj *z, t_binbuf *b)
}
/* style = template_getfloat(scalartemplate, gensym("style"),
x->x_scalar->sc_vec, 0); */
filestyle = (x->x_style == PLOTSTYLE_POINTS ? 0 :
(x->x_style == PLOTSTYLE_POLY ? 1 : x->x_style));
filestyle = (x->x_style == PLOTSTYLE_POINTS ? 1 :
(x->x_style == PLOTSTYLE_POLY ? 0 : x->x_style));
binbuf_addv(b, "sssisiss;", gensym("#X"), gensym("array"),
x->x_name, array->a_n, &s_float,
......
......@@ -5019,11 +5019,15 @@ static void plot_vis(t_gobj *z, t_glist *glist, t_glist *parentglist,
if (ndrawn > 2000 || ixpix >= 3000) break;
}
/* end of the path item from above */
// Ico 2014-09-17: we keep style the same for both because stroke
// already gives us the thickness matching that of vanilla pd
// The code is left here in its redundant form for future reference
// in case we encounter regressions.
sys_vgui("} -fill %s -stroke %s -strokewidth %d "
"-parent {.dgroup%lx.%lx} "
"-tags {.x%lx.x%lx.template%lx array}\n",
symfill->s_name, symoutline->s_name,
style == PLOTSTYLE_POINTS ? 0 : 1,
style == PLOTSTYLE_POINTS ? 0 : 0,
x->x_canvas, data,
glist_getcanvas(glist), glist, data);
}
......@@ -5725,6 +5729,8 @@ static void old_plot_vis(t_gobj *z, t_glist *glist, t_glist *parentglist,
nelem = array->a_n;
elem = (char *)array->a_vec;
//fprintf(stderr,"old_plot_vis style=%g\n", style);
if (tovis)
{
/* check if old 3-digit color field is being used... */
......@@ -5852,10 +5858,14 @@ static void old_plot_vis(t_gobj *z, t_glist *glist, t_glist *parentglist,
if (ndrawn > 2000 || ixpix >= 3000) break;
}
/* end of the path item from above */
// Ico 2014-09-17: we keep style the same for both because stroke
// already gives us the thickness matching that of vanilla pd
// The code is left here in its redundant form for future reference
// in case we encounter regressions.
sys_vgui("} -fill %s -stroke %s -strokewidth %d "
"-tags {.x%lx.x%lx.template%lx array}\n",
symfill->s_name, symoutline->s_name,
style == PLOTSTYLE_POINTS ? 0 : 1,
style == PLOTSTYLE_POINTS ? 0 : 0,
glist_getcanvas(glist), glist, data);
}
else
......
......@@ -6067,6 +6067,7 @@ proc array_apply {id canvas} {
set outline $::dialog($vid:outline)
# puts stderr "...[expr $saveit + 2 * $drawasrects + 16 * $joc]"
# puts stderr "tk drawasrects=$drawasrects"
set xdraw [expr int([$canvas.c canvasx 0])]
set ydraw [expr int([$canvas.c canvasy 0])]
......@@ -6270,14 +6271,14 @@ if {[catch {
pack $id.drawasrects -side top -pady 3 -anchor w
match_linux_wm [list label $id.drawasrects.l -text "draw as:"]
pack $id.drawasrects.l -side top -pady 3 -anchor w
match_linux_wm [list radiobutton $id.drawasrects.drawasrects0 -value 0 \
match_linux_wm [list radiobutton $id.drawasrects.drawasrects0 -value 1 \
-variable ::dialog($vid:drawasrects) \
-text "points" \
-command "array_update_drawas 0 $ffr $ofr $olabel"]
match_linux_wm [list radiobutton $id.drawasrects.drawasrects1 -value 1 \
-command "array_update_drawas 1 $ffr $ofr $olabel"]
match_linux_wm [list radiobutton $id.drawasrects.drawasrects1 -value 0 \
-variable ::dialog($vid:drawasrects) \
-text "polygon" \
-command "array_update_drawas 1 $ffr $ofr $olabel"]
-command "array_update_drawas 0 $ffr $ofr $olabel"]
#match_linux_wm [list radiobutton $id.drawasrects.drawasrects2 -value 2 \
# -variable ::dialog($vid:drawasrects) \
# -text "bezier curve" \
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment