Update of /cvsroot/pure-data/pd/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14118
Modified Files:
Tag: desiredata
desire.c desire.h
Log Message:
removed canvas field "owner" (duplicate of "dix->canvas")
Index: desire.h
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/desire.h,v
retrieving revision 1.1.2.49.2.51
retrieving revision 1.1.2.49.2.52
diff -C2 -d -r1.1.2.49.2.51 -r1.1.2.49.2.52
*** desire.h 18 Aug 2007 05:44:25 -0000 1.1.2.49.2.51
--- desire.h 19 Aug 2007 02:35:27 -0000 1.1.2.49.2.52
***************
*** 156,160 ****
t_object gl_obj; /* header in case we're a [pd] or abstraction */
#endif
- t_canvas *owner; /* parent canvas, supercanvas, or 0 if none */
int pixwidth, pixheight; /* width in pixels (on parent, if a graph) */
float x1,y1,x2,y2; /* bounding rectangle in our own coordinates */
--- 156,159 ----
Index: desire.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/desire.c,v
retrieving revision 1.1.2.217.2.227
retrieving revision 1.1.2.217.2.228
diff -C2 -d -r1.1.2.217.2.227 -r1.1.2.217.2.228
*** desire.c 19 Aug 2007 01:17:17 -0000 1.1.2.217.2.227
--- desire.c 19 Aug 2007 02:35:24 -0000 1.1.2.217.2.228
***************
*** 117,120 ****
--- 117,133 ----
//--------------------------------------------------------------------------
+
+ t_class *gop_filtre_class;
+
+ struct t_gop_filtre : t_gobj {
+ };
+
+ t_gobj *gop_filtre_new() {
+ t_gop_filtre *self = (t_gop_filtre *)pd_new(gop_filtre_class);
+ new(self) t_gop_filtre;
+ return self;
+ }
+
+ //--------------------------------------------------------------------------
// t_appendix: an extension to t_gobj made by matju so that all t_gobj's may have new fields
// without sacrificing binary compat with externals compiled for PureMSP.
***************
*** 443,451 ****
t_canvasenvironment *canvas_getenv(t_canvas *x) {
! if (!x) bug("canvas_getenv");
! while (!x->env) {
! x = x->owner;
! if (!x) {bug("t_canvasenvironment", x); return 0;}
! }
return x->env;
}
--- 456,460 ----
t_canvasenvironment *canvas_getenv(t_canvas *x) {
! while (!x->env) x = x->dix->canvas;
return x->env;
}
***************
*** 578,582 ****
x->x2 = 1; x->y2 = 1;
canvas_setbounds(x, xloc, yloc, xloc + width, yloc + height);
! x->owner = owner;
x->name = *s->name ? s : canvas_newfilename ? canvas_newfilename : s_Pd;
if (x->name != s_Pd) pd_bind(x, canvas_makebindsym(x->name));
--- 587,591 ----
x->x2 = 1; x->y2 = 1;
canvas_setbounds(x, xloc, yloc, xloc + width, yloc + height);
! gobj_setcanvas(x,owner);
x->name = *s->name ? s : canvas_newfilename ? canvas_newfilename : s_Pd;
if (x->name != s_Pd) pd_bind(x, canvas_makebindsym(x->name));
***************
*** 586,591 ****
if (vis && gensym("#X")->thing && gensym("#X")->thing->_class == canvas_class) {
t_canvas *z = (t_canvas *)(gensym("#X")->thing);
! while (z && !z->env) z = z->owner;
! if (z && canvas_isabstraction(z) && z->owner) vis = 0;
}
if (vis) canvas_vis(x,vis);
--- 595,600 ----
if (vis && gensym("#X")->thing && gensym("#X")->thing->_class == canvas_class) {
t_canvas *z = (t_canvas *)(gensym("#X")->thing);
! while (z && !z->env) z = z->dix->canvas;
! if (z && canvas_isabstraction(z) && z->dix->canvas) vis = 0;
}
if (vis) canvas_vis(x,vis);
***************
*** 642,646 ****
x->screenx1 = x->screeny1 = 0; x->screenx2 = 450; x->screeny2 = 300;
if (x->name != s_Pd) pd_bind(x, canvas_makebindsym(x->name));
! x->owner = g;
x->gop = 1;
x->goprect = 0;
--- 651,655 ----
x->screenx1 = x->screeny1 = 0; x->screenx2 = 450; x->screeny2 = 300;
if (x->name != s_Pd) pd_bind(x, canvas_makebindsym(x->name));
! gobj_setcanvas(x,g);
x->gop = 1;
x->goprect = 0;
***************
*** 693,697 ****
static void canvas_menu_open(t_canvas *x) {
if (canvas_isvisible(x) && !canvas_istoplevel(x)) {
! if (!x->owner) {error("can't open a non-subcanvas"); return;}
SET(havewindow,1);
}
--- 702,706 ----
static void canvas_menu_open(t_canvas *x) {
if (canvas_isvisible(x) && !canvas_istoplevel(x)) {
! if (!x->dix->canvas) {error("this works only on subpatch or abstraction"); return;}
SET(havewindow,1);
}
***************
*** 704,712 ****
int canvas_istoplevel(t_canvas *x) {return x->havewindow || !x->gop;}
- static int canvas_getfont(t_canvas *x) {
- while (!x->env) x=x->owner;
- return x->font;
- }
-
static void canvas_free(t_canvas *x) {
int dspstate = canvas_suspend_dsp();
--- 713,716 ----
***************
*** 723,727 ****
free(x->xlabel);
free(x->ylabel);
! if (!x->owner) canvas_takeofflist(x);
}
--- 727,731 ----
free(x->xlabel);
free(x->ylabel);
! if (!x->dix->canvas) canvas_takeofflist(x);
}
***************
*** 767,771 ****
if (!z) {error("out of context"); return;}
if (z->_class != canvas_class) {error("wasn't a canvas"); return;}
! x->owner = (t_canvas *)z;
canvas_objfor((t_canvas *)z, x, argc, argv);
newest = x;
--- 771,775 ----
if (!z) {error("out of context"); return;}
if (z->_class != canvas_class) {error("wasn't a canvas"); return;}
! gobj_setcanvas(x,(t_canvas *)z);
canvas_objfor((t_canvas *)z, x, argc, argv);
newest = x;
***************
*** 829,833 ****
SETFLOAT(a+5, 1);
t_canvas *x = canvas_new(0, 0, 6, a);
! x->owner = z;
canvas_pop(x, 1);
return x;
--- 833,837 ----
SETFLOAT(a+5, 1);
t_canvas *x = canvas_new(0, 0, 6, a);
! gobj_setcanvas(x,z);
canvas_pop(x, 1);
return x;
***************
*** 862,866 ****
SETFLOAT(a+5, 0);
t_canvas *x = canvas_new(0,0,6,a);
! x->owner = z;
/* create a graph for the table */
t_canvas *gl = canvas_addcanvas(x, &s_, 0, -1, (f > 1 ? f-1 : 1), 1, 50, 350, 550, 50);
--- 866,870 ----
SETFLOAT(a+5, 0);
t_canvas *x = canvas_new(0,0,6,a);
! gobj_setcanvas(x,z);
/* create a graph for the table */
t_canvas *gl = canvas_addcanvas(x, &s_, 0, -1, (f > 1 ? f-1 : 1), 1, 50, 350, 550, 50);
***************
*** 892,897 ****
/* get the document containing this canvas */
t_canvas *canvas_getrootfor(t_canvas *x) {
! if (!x->owner || canvas_isabstraction(x)) return x;
! return canvas_getrootfor(x->owner);
}
--- 896,901 ----
/* get the document containing this canvas */
t_canvas *canvas_getrootfor(t_canvas *x) {
! if (!x->dix->canvas || canvas_isabstraction(x)) return x;
! return canvas_getrootfor(x->dix->canvas);
}
***************
*** 975,979 ****
void *ret = 0;
canvas_each(g,canvas) if (g->_class == blockclass) ret = g;
! *canvasp = canvas->owner;
return ret;
}
--- 979,983 ----
void *ret = 0;
canvas_each(g,canvas) if (g->_class == blockclass) ret = g;
! *canvasp = canvas->dix->canvas;
return ret;
}
***************
*** 1120,1124 ****
void canvas_close(t_canvas *x) {
! if (x->owner) canvas_vis(x, 0); else pd_free(x);
}
--- 1124,1128 ----
void canvas_close(t_canvas *x) {
! if (x->dix->canvas) canvas_vis(x, 0); else pd_free(x);
}
***************
*** 1157,1161 ****
static void canvas_find_parent(t_canvas *x) {
! if (x->owner) canvas_vis(canvas_getcanvas(x->owner), 1);
}
--- 1161,1165 ----
static void canvas_find_parent(t_canvas *x) {
! if (x->dix->canvas) canvas_vis(canvas_getcanvas(x->dix->canvas), 1);
}
***************
*** 2027,2032 ****
}
t_canvas *canvas_getcanvas(t_canvas *x) {
! while (x->owner && !x->havewindow && x->gop) x = x->owner;
return x;
}
--- 2031,2037 ----
}
+
t_canvas *canvas_getcanvas(t_canvas *x) {
! while (x->dix->canvas && !x->havewindow && x->gop) x = x->dix->canvas;
return x;
}
***************
*** 2104,2112 ****
static void canvas_rminlet(t_canvas *x, t_inlet *ip) {
! if (x->owner) canvas_deletelinesforio(x->owner,x,ip,0);
inlet_free(ip); /*gobj_changed(x,0);*/
}
static void canvas_rmoutlet(t_canvas *x, t_outlet *op) {
! if (x->owner) canvas_deletelinesforio(x->owner,x,0,op);
outlet_free(op); /*gobj_changed(x,0);*/
}
--- 2109,2117 ----
static void canvas_rminlet(t_canvas *x, t_inlet *ip) {
! if (x->dix->canvas) canvas_deletelinesforio(x->dix->canvas,x,ip,0);
inlet_free(ip); /*gobj_changed(x,0);*/
}
static void canvas_rmoutlet(t_canvas *x, t_outlet *op) {
! if (x->dix->canvas) canvas_deletelinesforio(x->dix->canvas,x,0,op);
outlet_free(op); /*gobj_changed(x,0);*/
}
***************
*** 2182,2186 ****
if (!x->gop) return x->x1 + width * xpix;
if (x->havewindow) return x->x1 + width * xpix / (x->screenx2-x->screenx1);
! graph_graphrect(x, x->owner, &x1, &y1, &x2, &y2);
return x->x1 + width * (xpix-x1) / (x2-x1);
}
--- 2187,2191 ----
if (!x->gop) return x->x1 + width * xpix;
if (x->havewindow) return x->x1 + width * xpix / (x->screenx2-x->screenx1);
! graph_graphrect(x, x->dix->canvas, &x1, &y1, &x2, &y2);
return x->x1 + width * (xpix-x1) / (x2-x1);
}
***************
*** 2189,2193 ****
if (!x->gop) return x->y1 + height * ypix;
if (x->havewindow) return x->y1 + height * ypix / (x->screeny2-x->screeny1);
! graph_graphrect(x, x->owner, &x1, &y1, &x2, &y2);
return x->y1 + height * (ypix-y1) / (y2-y1);
}
--- 2194,2198 ----
if (!x->gop) return x->y1 + height * ypix;
if (x->havewindow) return x->y1 + height * ypix / (x->screeny2-x->screeny1);
! graph_graphrect(x, x->dix->canvas, &x1, &y1, &x2, &y2);
return x->y1 + height * (ypix-y1) / (y2-y1);
}
***************
*** 2198,2202 ****
if (!x->gop) return int((xval-x->x1)/width);
if (x->havewindow) return int((x->screenx2-x->screenx1) * (xval-x->x1) / width);
! graph_graphrect(x, x->owner, &x1, &y1, &x2, &y2);
return int(x1 + (x2-x1) * (xval-x->x1) / width);
}
--- 2203,2207 ----
if (!x->gop) return int((xval-x->x1)/width);
if (x->havewindow) return int((x->screenx2-x->screenx1) * (xval-x->x1) / width);
! graph_graphrect(x, x->dix->canvas, &x1, &y1, &x2, &y2);
return int(x1 + (x2-x1) * (xval-x->x1) / width);
}
***************
*** 2205,2209 ****
if (!x->gop) return int((yval-x->y1)/height);
if (x->havewindow) return int((x->screeny2-x->screeny1) * (yval-x->y1) / height);
! graph_graphrect(x, x->owner, &x1, &y1, &x2, &y2);
return int(y1 + (y2-y1) * (yval-x->y1) / height);
}
--- 2210,2214 ----
if (!x->gop) return int((yval-x->y1)/height);
if (x->havewindow) return int((x->screeny2-x->screeny1) * (yval-x->y1) / height);
! graph_graphrect(x, x->dix->canvas, &x1, &y1, &x2, &y2);
return int(y1 + (y2-y1) * (yval-x->y1) / height);
}
***************
*** 2232,2236 ****
static void graph_vis(t_gobj *gr, int vis) {
t_canvas *x = (t_canvas *)gr;
! t_canvas *c = canvas_getcanvas(x->owner);
char tag[50];
int x1=69, y1=69, x2=69, y2=69;
--- 2237,2241 ----
static void graph_vis(t_gobj *gr, int vis) {
t_canvas *x = (t_canvas *)gr;
! t_canvas *c = canvas_getcanvas(x->dix->canvas);
char tag[50];
int x1=69, y1=69, x2=69, y2=69;
***************
*** 2297,2301 ****
/* draw labels */
#define DRAWLABEL(x1,y1) sys_vgui(".x%lx.c create text %d %d -text {%s} -font "FONT" -tags %s\n", (long)c, \
! int(canvas_xtopixels(x,x1)),int(canvas_ytopixels(x,y1)),s,canvas_getfont(x),tag);
for (int i=0; i < x->nxlabels; i++) {char *s = x->xlabel[i]->name; DRAWLABEL(atof(s),x->xlabely);}
for (int i=0; i < x->nylabels; i++) {char *s = x->ylabel[i]->name; DRAWLABEL(x->ylabelx,atof(s));}
--- 2302,2306 ----
/* draw labels */
#define DRAWLABEL(x1,y1) sys_vgui(".x%lx.c create text %d %d -text {%s} -font "FONT" -tags %s\n", (long)c, \
! int(canvas_xtopixels(x,x1)),int(canvas_ytopixels(x,y1)),s,42,tag);
for (int i=0; i < x->nxlabels; i++) {char *s = x->xlabel[i]->name; DRAWLABEL(atof(s),x->xlabely);}
for (int i=0; i < x->nylabels; i++) {char *s = x->ylabel[i]->name; DRAWLABEL(x->ylabelx,atof(s));}
***************
*** 2661,2665 ****
int y1=x->screeny1, ys=x->screeny2-y1;
binbuf_addv(b,"ttiiii","#N","canvas",x1,y1,xs,ys);
! if (x->owner && !x->env) { /* subpatch */
binbuf_addv(b, "si;", (patchsym != &s_ ? patchsym: gensym("(subpatch)")), x->havewindow);
} else { /* root or abstraction */
--- 2666,2670 ----
int y1=x->screeny1, ys=x->screeny2-y1;
binbuf_addv(b,"ttiiii","#N","canvas",x1,y1,xs,ys);
! if (x->dix->canvas && !x->env) { /* subpatch */
binbuf_addv(b, "si;", (patchsym != &s_ ? patchsym: gensym("(subpatch)")), x->havewindow);
} else { /* root or abstraction */
***************
*** 2748,2752 ****
if (!binbuf_write(b, filename->name, dir->name, 0)) {
/* if not an abstraction, reset title bar and directory */
! if (!x->owner) canvas_rename(x, filename, dir);
post("saved to: %s/%s", dir->name, filename->name);
canvas_reload(filename,dir,x);
--- 2753,2757 ----
if (!binbuf_write(b, filename->name, dir->name, 0)) {
/* if not an abstraction, reset title bar and directory */
! if (!x->dix->canvas) canvas_rename(x, filename, dir);
post("saved to: %s/%s", dir->name, filename->name);
canvas_reload(filename,dir,x);
***************
*** 6702,6708 ****
if (sys_open_absolute(name, ext, dirresult, nameresult, bin, &fd)) return fd;
/* otherwise "name" is relative; start trying in directories named in this and parent environments */
! for (t_canvas *y=x; y; y = y->owner) if (y->env) {
t_canvas *x2 = x;
! while (x2 && x2->owner) x2 = x2->owner;
const char *dir = x2 ? canvas_getdir(x2)->name : ".";
for (t_namelist *nl = y->env->path; nl; nl = nl->nl_next) {
--- 6707,6713 ----
if (sys_open_absolute(name, ext, dirresult, nameresult, bin, &fd)) return fd;
/* otherwise "name" is relative; start trying in directories named in this and parent environments */
! for (t_canvas *y=x; y; y = y->dix->canvas) if (y->env) {
t_canvas *x2 = x;
! while (x2 && x2->dix->canvas) x2 = x2->dix->canvas;
const char *dir = x2 ? canvas_getdir(x2)->name : ".";
for (t_namelist *nl = y->env->path; nl; nl = nl->nl_next) {