Update of /cvsroot/pure-data/pd/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2210
Modified Files: Tag: desiredata m_pd.h desire.c Log Message: shorthands for t_text (removed te_ prefix)
Index: m_pd.h =================================================================== RCS file: /cvsroot/pure-data/pd/src/m_pd.h,v retrieving revision 1.4.4.11.2.33.2.2 retrieving revision 1.4.4.11.2.33.2.3 diff -C2 -d -r1.4.4.11.2.33.2.2 -r1.4.4.11.2.33.2.3 *** m_pd.h 2 Dec 2006 03:12:12 -0000 1.4.4.11.2.33.2.2 --- m_pd.h 2 Dec 2006 05:37:19 -0000 1.4.4.11.2.33.2.3 *************** *** 242,259 **** typedef struct t_text : t_gobj { #else ! typedef struct _text /* patchable object - graphical, with text */ { ! t_gobj te_g; /* header for graphical object */ #endif ! t_binbuf *te_binbuf; /* holder for the text */ ! t_outlet *te_outlet; /* linked list of outlets */ ! t_inlet *te_inlet; /* linked list of inlets */ ! short te_xpix; /* x&y location (within the toplevel) */ ! short te_ypix; ! short te_width; /* requested width in chars, 0 if auto */ ! unsigned int te_type:2; /* from defs below */ ! /* t_object is synonym for t_text (LATER unify them) */ } t_text, t_object;
#define T_TEXT 0 /* just a textual comment */ #define T_OBJECT 1 /* a MAX style patchable object */ --- 242,265 ---- typedef struct t_text : t_gobj { #else ! typedef struct _text /* patchable object - graphical, with text */ { ! t_gobj te_g; /* header for graphical object */ #endif ! t_binbuf *binbuf; /* holder for the text */ ! t_outlet *outlet; /* linked list of outlets */ ! t_inlet *inlet; /* linked list of inlets */ ! short x,y; /* x&y location (within the toplevel) */ ! short width; /* requested width in chars, 0 if auto */ ! unsigned int type:2; /* from defs below */ } t_text, t_object;
+ #define te_binbuf binbuf + #define te_outlet outlet + #define te_inlet inlet + #define te_xpix x + #define te_ypix y + #define te_width width + #define te_type type + #define T_TEXT 0 /* just a textual comment */ #define T_OBJECT 1 /* a MAX style patchable object */
Index: desire.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/Attic/desire.c,v retrieving revision 1.1.2.217.2.9 retrieving revision 1.1.2.217.2.10 diff -C2 -d -r1.1.2.217.2.9 -r1.1.2.217.2.10 *** desire.c 2 Dec 2006 05:10:56 -0000 1.1.2.217.2.9 --- desire.c 2 Dec 2006 05:37:20 -0000 1.1.2.217.2.10 *************** *** 204,208 **** #ifdef DEBUG_QUEUE char *buf; int bufn; ! t_binbuf *b = ((t_text *)stuff)->te_binbuf; if (b) {char *buf; int bufn; binbuf_gettext(b,&buf,&bufn); printf("queue_put [%.*s]\n",bufn,buf);} else {printf("queue_put (%s)\n",stuff->_class->c_name->s_name);} --- 204,208 ---- #ifdef DEBUG_QUEUE char *buf; int bufn; ! t_binbuf *b = ((t_text *)stuff)->binbuf; if (b) {char *buf; int bufn; binbuf_gettext(b,&buf,&bufn); printf("queue_put [%.*s]\n",bufn,buf);} else {printf("queue_put (%s)\n",stuff->_class->c_name->s_name);} *************** *** 223,227 **** post("queue_get: items in queue: %d",self->len); if (stuff) { ! t_binbuf *b = ((t_text *)stuff)->te_binbuf; if (b) { char *buf; int bufn; --- 223,227 ---- post("queue_get: items in queue: %d",self->len); if (stuff) { ! t_binbuf *b = ((t_text *)stuff)->binbuf; if (b) { char *buf; int bufn; *************** *** 521,525 **** int vis=0, font = owner?owner->font:42 /*sys_defaultfont*/; canvas_init(x); ! x->te_type = T_OBJECT; if (!owner) canvas_addtolist(x); /* toplevel vs subwindow */ --- 521,525 ---- int vis=0, font = owner?owner->font:42 /*sys_defaultfont*/; canvas_init(x); ! x->type = T_OBJECT; if (!owner) canvas_addtolist(x); /* toplevel vs subwindow */ *************** *** 593,597 **** t_canvas *x = (t_canvas *)pd_new(canvas_class); canvas_init(x); ! x->te_type = T_OBJECT; if (!*sym->s_name) { char buf[40]; --- 593,597 ---- t_canvas *x = (t_canvas *)pd_new(canvas_class); canvas_init(x); ! x->type = T_OBJECT; if (!*sym->s_name) { char buf[40]; *************** *** 613,618 **** } x->name = sym; ! x->x1 = x1; x->y1 = y1; x->te_xpix = (short)px1; x->pixwidth = (int)(px2-px1); ! x->x2 = x2; x->y2 = y2; x->te_ypix = (short)py1; x->pixheight = (int)(py2-py1); x->font = (canvas_getcurrent() ? canvas_getcurrent()->font : 42 /*sys_defaultfont*/); x->screenx1 = x->screeny1 = 0; x->screenx2 = 450; x->screeny2 = 300; --- 613,618 ---- } x->name = sym; ! x->x1 = x1; x->y1 = y1; x->x = (short)px1; x->pixwidth = (int)(px2-px1); ! x->x2 = x2; x->y2 = y2; x->y = (short)py1; x->pixheight = (int)(py2-py1); x->font = (canvas_getcurrent() ? canvas_getcurrent()->font : 42 /*sys_defaultfont*/); x->screenx1 = x->screeny1 = 0; x->screenx2 = 450; x->screeny2 = 300; *************** *** 621,626 **** x->isgraph = 1; x->goprect = 0; ! x->te_binbuf = binbuf_new(); ! binbuf_addv(x->te_binbuf, "s", gensym("graph")); if (!menu) pd_pushsym(x); canvas_add(g,x); --- 621,626 ---- x->isgraph = 1; x->goprect = 0; ! x->binbuf = binbuf_new(); ! binbuf_addv(x->binbuf, "s", gensym("graph")); if (!menu) pd_pushsym(x); canvas_add(g,x); *************** *** 937,942 **** /* return true if the "canvas" object is a "table". */ int canvas_istable(t_canvas *x) { ! t_atom *argv = x->te_binbuf ? binbuf_getvec( x->te_binbuf) : 0; ! int argc = x->te_binbuf ? binbuf_getnatom(x->te_binbuf) : 0; return argc && argv[0].a_type == A_SYMBOL && argv[0].a_w.w_symbol == gensym("table"); } --- 937,942 ---- /* return true if the "canvas" object is a "table". */ int canvas_istable(t_canvas *x) { ! t_atom *argv = x->binbuf ? binbuf_getvec( x->binbuf) : 0; ! int argc = x->binbuf ? binbuf_getnatom(x->binbuf) : 0; return argc && argv[0].a_type == A_SYMBOL && argv[0].a_w.w_symbol == gensym("table"); } *************** *** 945,950 **** object. This is true for abstractions but also for "table"s... */ static int canvas_showtext(t_canvas *x) { ! t_atom *argv = x->te_binbuf? binbuf_getvec( x->te_binbuf) : 0; ! int argc = x->te_binbuf? binbuf_getnatom(x->te_binbuf) : 0; int isarray = argc && argv[0].a_type == A_SYMBOL && argv[0].a_w.w_symbol == gensym("graph"); return !isarray; --- 945,950 ---- object. This is true for abstractions but also for "table"s... */ static int canvas_showtext(t_canvas *x) { ! t_atom *argv = x->binbuf? binbuf_getvec( x->binbuf) : 0; ! int argc = x->binbuf? binbuf_getnatom(x->binbuf) : 0; int isarray = argc && argv[0].a_type == A_SYMBOL && argv[0].a_w.w_symbol == gensym("graph"); return !isarray; *************** *** 1101,1106 **** t_object *ob = pd_checkobject(g); t_atom *argv; ! if (!ob || ob->te_type != T_OBJECT || binbuf_getnatom(ob->te_binbuf) < 2) continue; ! argv = binbuf_getvec(ob->te_binbuf); if (argv[0].a_type != A_SYMBOL || argv[1].a_type != A_SYMBOL || argv[0].a_w.w_symbol != s1) continue; --- 1101,1106 ---- t_object *ob = pd_checkobject(g); t_atom *argv; ! if (!ob || ob->type != T_OBJECT || binbuf_getnatom(ob->binbuf) < 2) continue; ! argv = binbuf_getvec(ob->binbuf); if (argv[0].a_type != A_SYMBOL || argv[1].a_type != A_SYMBOL || argv[0].a_w.w_symbol != s1) continue; *************** *** 1204,1208 **** else sys_vgui(".x%lx.c create text %d %d -anchor sw -text "%s" -tags y\n", ! (t_int)x, xpos, ypos-4,inlet_tip(ob->te_inlet,closest)); */ } --- 1204,1208 ---- else sys_vgui(".x%lx.c create text %d %d -anchor sw -text "%s" -tags y\n", ! (t_int)x, xpos, ypos-4,inlet_tip(ob->inlet,closest)); */ } *************** *** 1390,1394 ****
static int is_dummy (t_text *x) { ! return x->_class==text_class && x->te_type==T_OBJECT;}
void canvas_connect(t_canvas *x, t_floatarg ffrom, t_floatarg foutlet, t_floatarg fto,t_floatarg finlet) { --- 1390,1394 ----
static int is_dummy (t_text *x) { ! return x->_class==text_class && x->type==T_OBJECT;}
void canvas_connect(t_canvas *x, t_floatarg ffrom, t_floatarg foutlet, t_floatarg fto,t_floatarg finlet) { *************** *** 2261,2265 **** } else { char *buf; int bufn; ! t_binbuf *bb = ((t_text *)y)->te_binbuf; if (bb->b_vec) { binbuf_gettext(bb,&buf,&bufn); --- 2261,2265 ---- } else { char *buf; int bufn; ! t_binbuf *bb = ((t_text *)y)->binbuf; if (bb->b_vec) { binbuf_gettext(bb,&buf,&bufn); *************** *** 2442,2446 **** for (vp = vec, xmax = -0x7fffffff, maxp = 0, j=n; j--; vp++) { if (!*vp) continue; ! x1 = ((t_text *)*vp)->te_xpix; if (x1 > xmax) {xmax = x1; maxp = vp;} } --- 2442,2446 ---- for (vp = vec, xmax = -0x7fffffff, maxp = 0, j=n; j--; vp++) { if (!*vp) continue; ! x1 = ((t_text *)*vp)->x; if (x1 > xmax) {xmax = x1; maxp = vp;} } *************** *** 2463,2467 **** for (vp = vec, xmax = -0x7fffffff, maxp = 0, j=n; j--; vp++) { if (!*vp) continue; ! x1 = ((t_text *)*vp)->te_xpix; if (x1 > xmax) {xmax = x1; maxp = vp;} } --- 2463,2467 ---- for (vp = vec, xmax = -0x7fffffff, maxp = 0, j=n; j--; vp++) { if (!*vp) continue; ! x1 = ((t_text *)*vp)->x; if (x1 > xmax) {xmax = x1; maxp = vp;} } *************** *** 2552,2564 **** static int text_xpix(t_text *x, t_canvas *canvas) { float width = canvas->x2-canvas->x1; ! if (canvas->havewindow || !canvas->isgraph) return x->te_xpix; ! if (canvas->goprect) return canvas->te_xpix + x->te_xpix - canvas->xmargin; ! return canvas_xtopixels(canvas, canvas->x1 + width * x->te_xpix / (canvas->screenx2-canvas->screenx1)); } static int text_ypix(t_text *x, t_canvas *canvas) { float height = canvas->y2-canvas->y1; ! if (canvas->havewindow || !canvas->isgraph) return x->te_ypix; ! if (canvas->goprect) return canvas->te_ypix + x->te_ypix - canvas->ymargin; ! return canvas_ytopixels(canvas, canvas->y1 + height* x->te_ypix / (canvas->screeny2-canvas->screeny1)); }
--- 2552,2564 ---- static int text_xpix(t_text *x, t_canvas *canvas) { float width = canvas->x2-canvas->x1; ! if (canvas->havewindow || !canvas->isgraph) return x->x; ! if (canvas->goprect) return canvas->x+x->x-canvas->xmargin; ! return canvas_xtopixels(canvas, canvas->x1 + width * x->x / (canvas->screenx2-canvas->screenx1)); } static int text_ypix(t_text *x, t_canvas *canvas) { float height = canvas->y2-canvas->y1; ! if (canvas->havewindow || !canvas->isgraph) return x->y; ! if (canvas->goprect) return canvas->y+x->y-canvas->ymargin; ! return canvas_ytopixels(canvas, canvas->y1 + height* x->y / (canvas->screeny2-canvas->screeny1)); }
*************** *** 5985,5998 **** t_text *x = (t_text *)pd_new(text_class); t_atom at; ! x->te_width = 0; ! x->te_type = T_TEXT; ! x->te_binbuf = binbuf_new(); if (argc > 1) { ! x->te_xpix = atom_getintarg(0, argc, argv); ! x->te_ypix = atom_getintarg(1, argc, argv); ! if (argc > 2) binbuf_restore(x->te_binbuf, argc-2, argv+2); else { SETSYMBOL(&at, gensym("comment")); ! binbuf_restore(x->te_binbuf, 1, &at); } canvas_add(gl,x); --- 5985,5998 ---- t_text *x = (t_text *)pd_new(text_class); t_atom at; ! x->width = 0; ! x->type = T_TEXT; ! x->binbuf = binbuf_new(); if (argc > 1) { ! x->x = atom_getintarg(0, argc, argv); ! x->y = atom_getintarg(1, argc, argv); ! if (argc > 2) binbuf_restore(x->binbuf, argc-2, argv+2); else { SETSYMBOL(&at, gensym("comment")); ! binbuf_restore(x->binbuf, 1, &at); } canvas_add(gl,x); *************** *** 6001,6007 **** SETSYMBOL(&at, gensym("comment")); xpix=ypix=0; ! x->te_xpix = (int)canvas_pixelstox(gl, xpix-3); ! x->te_ypix = (int)canvas_pixelstoy(gl, ypix-3); ! binbuf_restore(x->te_binbuf, 1, &at); canvas_add(gl,x); } --- 6001,6007 ---- SETSYMBOL(&at, gensym("comment")); xpix=ypix=0; ! x->x = (int)canvas_pixelstox(gl, xpix-3); ! x->y = (int)canvas_pixelstoy(gl, ypix-3); ! binbuf_restore(x->binbuf, 1, &at); canvas_add(gl,x); } *************** *** 6034,6042 **** } if (!x) x = (t_text *)pd_new(text_class); ! x->te_binbuf = b; ! x->te_xpix = xpix; ! x->te_ypix = ypix; ! x->te_width = 0; ! x->te_type = T_OBJECT; canvas_add(gl,x); if (x->_class== vinlet_class) canvas_resortinlets(canvas_getcanvas(gl)); --- 6034,6042 ---- } if (!x) x = (t_text *)pd_new(text_class); ! x->binbuf = b; ! x->x = xpix; ! x->y = ypix; ! x->width = 0; ! x->type = T_OBJECT; canvas_add(gl,x); if (x->_class== vinlet_class) canvas_resortinlets(canvas_getcanvas(gl)); *************** *** 6070,6079 ****
void canvas_objfor(t_canvas *gl, t_text *x, int argc, t_atom *argv) { ! x->te_width = 0; ! x->te_type = T_OBJECT; ! x->te_binbuf = binbuf_new(); ! x->te_xpix = atom_getintarg(0, argc, argv); ! x->te_ypix = atom_getintarg(1, argc, argv); ! if (argc > 2) binbuf_restore(x->te_binbuf, argc-2, argv+2); canvas_add(gl,x); } --- 6070,6079 ----
void canvas_objfor(t_canvas *gl, t_text *x, int argc, t_atom *argv) { ! x->width = 0; ! x->type = T_OBJECT; ! x->binbuf = binbuf_new(); ! x->x = atom_getintarg(0, argc, argv); ! x->y = atom_getintarg(1, argc, argv); ! if (argc > 2) binbuf_restore(x->binbuf, argc-2, argv+2); canvas_add(gl,x); } *************** *** 6098,6120 ****
static void message_bang(t_message *x) ! {binbuf_eval(x->te_binbuf, &x->mresp.mr_pd, 0, 0);} static void message_float(t_message *x, t_float f) ! {t_atom at; SETFLOAT(&at, f); binbuf_eval(x->te_binbuf, &x->mresp.mr_pd, 1, &at);} static void message_symbol(t_message *x, t_symbol *s) ! {t_atom at; SETSYMBOL(&at, s); binbuf_eval(x->te_binbuf, &x->mresp.mr_pd, 1, &at);} static void message_list(t_message *x, t_symbol *s, int argc, t_atom *argv) ! {binbuf_eval(x->te_binbuf, &x->mresp.mr_pd, argc, argv);} static void message_add2(t_message *x, t_symbol *s, int argc, t_atom *argv) ! {binbuf_add(x->te_binbuf, argc, argv); gobj_changed(x,0);} static void message_set(t_message *x, t_symbol *s, int argc, t_atom *argv) ! {binbuf_clear(x->te_binbuf); message_add2(x,s,argc,argv);} static void message_add(t_message *x, t_symbol *s, int argc, t_atom *argv) ! {binbuf_add(x->te_binbuf, argc, argv); binbuf_addsemi(x->te_binbuf); gobj_changed(x,0);} static void message_addcomma(t_message *x) ! {t_atom a; SETCOMMA(&a); binbuf_add(x->te_binbuf, 1, &a); gobj_changed(x,0);} static void message_adddollar(t_message *x, t_floatarg f) ! {t_atom a; SETDOLLAR(&a, f<0?0:(int)f); binbuf_add(x->te_binbuf, 1, &a); gobj_changed(x,0);} static void message_adddollsym(t_message *x, t_symbol *s) ! {t_atom a; SETDOLLSYM(&a, s); binbuf_add(x->te_binbuf, 1, &a); gobj_changed(x,0);}
static void message_addsemi(t_message *x) {message_add(x,0,0,0);} --- 6098,6120 ----
static void message_bang(t_message *x) ! {binbuf_eval(x->binbuf, &x->mresp.mr_pd, 0, 0);} static void message_float(t_message *x, t_float f) ! {t_atom at; SETFLOAT(&at, f); binbuf_eval(x->binbuf, &x->mresp.mr_pd, 1, &at);} static void message_symbol(t_message *x, t_symbol *s) ! {t_atom at; SETSYMBOL(&at, s); binbuf_eval(x->binbuf, &x->mresp.mr_pd, 1, &at);} static void message_list(t_message *x, t_symbol *s, int argc, t_atom *argv) ! {binbuf_eval(x->binbuf, &x->mresp.mr_pd, argc, argv);} static void message_add2(t_message *x, t_symbol *s, int argc, t_atom *argv) ! {binbuf_add(x->binbuf, argc, argv); gobj_changed(x,0);} static void message_set(t_message *x, t_symbol *s, int argc, t_atom *argv) ! {binbuf_clear(x->binbuf); message_add2(x,s,argc,argv);} static void message_add(t_message *x, t_symbol *s, int argc, t_atom *argv) ! {binbuf_add(x->binbuf, argc, argv); binbuf_addsemi(x->binbuf); gobj_changed(x,0);} static void message_addcomma(t_message *x) ! {t_atom a; SETCOMMA(&a); binbuf_add(x->binbuf, 1, &a); gobj_changed(x,0);} static void message_adddollar(t_message *x, t_floatarg f) ! {t_atom a; SETDOLLAR(&a, f<0?0:(int)f); binbuf_add(x->binbuf, 1, &a); gobj_changed(x,0);} static void message_adddollsym(t_message *x, t_symbol *s) ! {t_atom a; SETDOLLSYM(&a, s); binbuf_add(x->binbuf, 1, &a); gobj_changed(x,0);}
static void message_addsemi(t_message *x) {message_add(x,0,0,0);} *************** *** 6124,6139 **** x->mresp.mr_pd._class = mresp_class; x->mresp.outlet = outlet_new(x,&s_float); ! x->te_width = 0; /* don't know it yet. */ ! x->te_type = T_MESSAGE; ! x->te_binbuf = binbuf_new(); x->canvas = gl; if (argc > 1) { ! x->te_xpix = atom_getintarg(0, argc, argv); ! x->te_ypix = atom_getintarg(1, argc, argv); ! if (argc > 2) binbuf_restore(x->te_binbuf, argc-2, argv+2); canvas_add(gl,x); } else { ! x->te_xpix = 0; ! x->te_ypix = 0; canvas_add(gl,x); } --- 6124,6139 ---- x->mresp.mr_pd._class = mresp_class; x->mresp.outlet = outlet_new(x,&s_float); ! x->width = 0; /* don't know it yet. */ ! x->type = T_MESSAGE; ! x->binbuf = binbuf_new(); x->canvas = gl; if (argc > 1) { ! x->x = atom_getintarg(0, argc, argv); ! x->y = atom_getintarg(1, argc, argv); ! if (argc > 2) binbuf_restore(x->binbuf, argc-2, argv+2); canvas_add(gl,x); } else { ! x->x = 0; ! x->y = 0; canvas_add(gl,x); } *************** *** 6185,6189 **** static void gatom_bang(t_gatom *x) { t_symbol *s = x->expanded_to; ! t_outlet *o = x->te_outlet; if (x->atom.a_type == A_FLOAT) { if (o) outlet_float(o, x->atom.a_w.w_float); --- 6185,6189 ---- static void gatom_bang(t_gatom *x) { t_symbol *s = x->expanded_to; ! t_outlet *o = x->outlet; if (x->atom.a_type == A_FLOAT) { if (o) outlet_float(o, x->atom.a_w.w_float); *************** *** 6219,6223 **** if (x->min>=x->max) x->min=x->max=0; CLAMP(width,1,80); ! x->te_width = width; x->wherelabel = (int)wherelabel&3; if (*x->rcv->s_name) pd_unbind(x, canvas_realizedollar(x->canvas, x->rcv)); --- 6219,6223 ---- if (x->min>=x->max) x->min=x->max=0; CLAMP(width,1,80); ! x->width = width; x->wherelabel = (int)wherelabel&3; if (*x->rcv->s_name) pd_unbind(x, canvas_realizedollar(x->canvas, x->rcv)); *************** *** 6232,6246 **** void canvas_atom(t_canvas *gl, t_atomtype type, t_symbol *s, int argc, t_atom *argv) { t_gatom *x = (t_gatom *)pd_new(gatom_class); ! if (type == A_FLOAT) {x->te_width = 5; SETFLOAT(&x->atom, 0);} ! else {x->te_width = 10; SETSYMBOL(&x->atom, &s_symbol);} ! x->te_type = T_ATOM; x->canvas = gl; x->min = x->max = 0; x->wherelabel = 0; x->label = x->rcv = x->snd = x->expanded_to = &s_; ! x->te_binbuf = binbuf_new(); ! binbuf_add(x->te_binbuf, 1, &x->atom); ! x->te_xpix = atom_getintarg(0, argc, argv); ! x->te_ypix = atom_getintarg(1, argc, argv); inlet_new(x,x,0,0); outlet_new(x, type == A_FLOAT ? &s_float: &s_symbol); --- 6232,6246 ---- void canvas_atom(t_canvas *gl, t_atomtype type, t_symbol *s, int argc, t_atom *argv) { t_gatom *x = (t_gatom *)pd_new(gatom_class); ! if (type == A_FLOAT) {x->width = 5; SETFLOAT(&x->atom, 0);} ! else {x->width = 10; SETSYMBOL(&x->atom, &s_symbol);} ! x->type = T_ATOM; x->canvas = gl; x->min = x->max = 0; x->wherelabel = 0; x->label = x->rcv = x->snd = x->expanded_to = &s_; ! x->binbuf = binbuf_new(); ! binbuf_add(x->binbuf, 1, &x->atom); ! x->x = atom_getintarg(0, argc, argv); ! x->y = atom_getintarg(1, argc, argv); inlet_new(x,x,0,0); outlet_new(x, type == A_FLOAT ? &s_float: &s_symbol); *************** *** 6262,6290 **** t_text *x = (t_text *)z; t_canvas *c = (t_canvas *)z; /* in case it is */ ! if (x->te_type == T_OBJECT) { if (zgetfn(x,gensym("saveto")) && !(x->_class==canvas_class && (canvas_isabstraction(c) || canvas_istable(c)))) { mess1(x,gensym("saveto"),b); ! binbuf_addv(b, "ssii", gensym("#X"), gensym("restore"), (t_int)x->te_xpix, (t_int)x->te_ypix); } else { ! binbuf_addv(b, "ssii", gensym("#X"), gensym("obj"), (t_int)x->te_xpix, (t_int)x->te_ypix); } ! if (x->te_binbuf) { ! binbuf_addbinbuf(b, x->te_binbuf); } else { /*bug("binbuf missing at #X restore !!!");*/ } ! } else if (x->te_type == T_MESSAGE) { ! binbuf_addv(b, "ssii", gensym("#X"), gensym("msg"), (t_int)x->te_xpix, (t_int)x->te_ypix); ! binbuf_addbinbuf(b, x->te_binbuf); ! } else if (x->te_type == T_ATOM) { t_gatom *g = (t_gatom *)x; t_symbol *sel = g->atom.a_type==A_SYMBOL? gensym("symbolatom") : gensym("floatatom"); ! binbuf_addv(b, "ssii", gensym("#X"), sel, (t_int)x->te_xpix, (t_int)x->te_ypix); ! binbuf_addv(b, "iffi", (t_int)x->te_width, g->min, g->max, (t_int)g->wherelabel); binbuf_addv(b, "sss", gatom_escapit(g->label), gatom_escapit(g->rcv), gatom_escapit(g->snd)); } else { /* comment */ ! binbuf_addv(b, "ssii", gensym("#X"), gensym("text"), (t_int)x->te_xpix, (t_int)x->te_ypix); ! binbuf_addbinbuf(b, x->te_binbuf); } binbuf_addv(b, ";"); --- 6262,6290 ---- t_text *x = (t_text *)z; t_canvas *c = (t_canvas *)z; /* in case it is */ ! if (x->type == T_OBJECT) { if (zgetfn(x,gensym("saveto")) && !(x->_class==canvas_class && (canvas_isabstraction(c) || canvas_istable(c)))) { mess1(x,gensym("saveto"),b); ! binbuf_addv(b, "ssii", gensym("#X"), gensym("restore"), (t_int)x->x, (t_int)x->y); } else { ! binbuf_addv(b, "ssii", gensym("#X"), gensym("obj"), (t_int)x->x, (t_int)x->y); } ! if (x->binbuf) { ! binbuf_addbinbuf(b, x->binbuf); } else { /*bug("binbuf missing at #X restore !!!");*/ } ! } else if (x->type == T_MESSAGE) { ! binbuf_addv(b, "ssii", gensym("#X"), gensym("msg"), (t_int)x->x, (t_int)x->y); ! binbuf_addbinbuf(b, x->binbuf); ! } else if (x->type == T_ATOM) { t_gatom *g = (t_gatom *)x; t_symbol *sel = g->atom.a_type==A_SYMBOL? gensym("symbolatom") : gensym("floatatom"); ! binbuf_addv(b, "ssii", gensym("#X"), sel, (t_int)x->x, (t_int)x->y); ! binbuf_addv(b, "iffi", (t_int)x->width, g->min, g->max, (t_int)g->wherelabel); binbuf_addv(b, "sss", gatom_escapit(g->label), gatom_escapit(g->rcv), gatom_escapit(g->snd)); } else { /* comment */ ! binbuf_addv(b, "ssii", gensym("#X"), gensym("text"), (t_int)x->x, (t_int)x->y); ! binbuf_addbinbuf(b, x->binbuf); } binbuf_addv(b, ";"); *************** *** 6292,6299 ****
static void text_setto(t_text *x, t_canvas *canvas, char *buf, int bufsize) { ! if (x->te_type == T_OBJECT) { t_binbuf *b = binbuf_new(); binbuf_text(b, buf, bufsize); ! int natom1 = binbuf_getnatom(x->te_binbuf); t_atom *vec1 = binbuf_getvec(x->te_binbuf); int natom2 = binbuf_getnatom(b); t_atom *vec2 = binbuf_getvec(b); /* special case: if pd args change just pass the message on. */ --- 6292,6299 ----
static void text_setto(t_text *x, t_canvas *canvas, char *buf, int bufsize) { ! if (x->type == T_OBJECT) { t_binbuf *b = binbuf_new(); binbuf_text(b, buf, bufsize); ! int natom1 = binbuf_getnatom(x->binbuf); t_atom *vec1 = binbuf_getvec(x->binbuf); int natom2 = binbuf_getnatom(b); t_atom *vec2 = binbuf_getvec(b); /* special case: if pd args change just pass the message on. */ *************** *** 6302,6309 **** vec2[0].a_type == A_SYMBOL && vec2[0].a_w.w_symbol == s_pd) { typedmess(x,gensym("rename"),natom2-1,vec2+1); ! binbuf_free(x->te_binbuf); ! x->te_binbuf = b; } else { ! int xwas = x->te_xpix, ywas = x->te_ypix; t_binbuf *buf = canvas_stowconnections(canvas_getcanvas(canvas),x); canvas_delete(canvas,x); --- 6302,6309 ---- vec2[0].a_type == A_SYMBOL && vec2[0].a_w.w_symbol == s_pd) { typedmess(x,gensym("rename"),natom2-1,vec2+1); ! binbuf_free(x->binbuf); ! x->binbuf = b; } else { ! int xwas=x->x, ywas=x->y; t_binbuf *buf = canvas_stowconnections(canvas_getcanvas(canvas),x); canvas_delete(canvas,x); *************** *** 6313,6317 **** canvas_restoreconnections(canvas_getcanvas(canvas), buf); } ! } else binbuf_text(x->te_binbuf, buf, bufsize); }
--- 6313,6317 ---- canvas_restoreconnections(canvas_getcanvas(canvas), buf); } ! } else binbuf_text(x->binbuf, buf, bufsize); }
*************** *** 6330,6335 **** t_text *o; if (sscanf(name->s_name,"!x%lx",(long*)&o)<1) {pd_error(x,"gargamel was here"); return;} ! o->te_xpix = (int)px; ! o->te_ypix = (int)py; gobj_changed(o,0); } --- 6330,6335 ---- t_text *o; if (sscanf(name->s_name,"!x%lx",(long*)&o)<1) {pd_error(x,"gargamel was here"); return;} ! o->x = (int)px; ! o->y = (int)py; gobj_changed(o,0); } *************** *** 6467,6477 **** } static void iemgui_delta(t_iemgui *x, t_symbol *s, int ac, t_atom *av) { ! x->te_xpix += (int)atom_getintarg(0, ac, av); ! x->te_ypix += (int)atom_getintarg(1, ac, av); iemgui_size(x); } static void iemgui_pos(t_iemgui *x, t_symbol *s, int ac, t_atom *av) { ! x->te_xpix = (int)atom_getintarg(0, ac, av); ! x->te_ypix = (int)atom_getintarg(1, ac, av); iemgui_size(x); } --- 6467,6477 ---- } static void iemgui_delta(t_iemgui *x, t_symbol *s, int ac, t_atom *av) { ! x->x += (int)atom_getintarg(0, ac, av); ! x->y += (int)atom_getintarg(1, ac, av); iemgui_size(x); } static void iemgui_pos(t_iemgui *x, t_symbol *s, int ac, t_atom *av) { ! x->x = (int)atom_getintarg(0, ac, av); ! x->y = (int)atom_getintarg(1, ac, av); iemgui_size(x); } *************** *** 6602,6607 ****
static int pd_savehead(t_binbuf *b, t_iemgui *x, char *name) { ! binbuf_addv(b, "ssiis", gensym("#X"),gensym("obj"), ! (t_int)x->te_xpix, (t_int)x->te_ypix, gensym(name)); return 1; } --- 6602,6606 ----
static int pd_savehead(t_binbuf *b, t_iemgui *x, char *name) { ! binbuf_addv(b, "ssiis", gensym("#X"), gensym("obj"), (t_int)x->x, (t_int)x->y, gensym(name)); return 1; } *************** *** 6617,6624 **** canvas_savecontainerto((t_canvas *)self,b); canvas_savecoordsto((t_canvas *)self,b); /* this may be too early */ ! binbuf_addv(b, "ssii", gensym("#X"), gensym("restore"), ! (t_int)x->te_xpix, (t_int)x->te_ypix); ! if (x->te_binbuf) { ! binbuf_addbinbuf(b, x->te_binbuf); } else { /*bug("binbuf missing at #X restore !!!");*/ --- 6616,6622 ---- canvas_savecontainerto((t_canvas *)self,b); canvas_savecoordsto((t_canvas *)self,b); /* this may be too early */ ! binbuf_addv(b, "ssii", gensym("#X"), gensym("restore"), (t_int)x->x, (t_int)x->y); ! if (x->binbuf) { ! binbuf_addbinbuf(b, x->binbuf); } else { /*bug("binbuf missing at #X restore !!!");*/ *************** *** 6652,6656 **** sys_mgui(self,"folder=","s",canvas_getenv(can)->dir); } ! if (x->te_type == T_ATOM) { t_gatom *g = (t_gatom *)x; if (g->atom.a_type==A_SYMBOL) { --- 6650,6654 ---- sys_mgui(self,"folder=","s",canvas_getenv(can)->dir); } ! if (x->type == T_ATOM) { t_gatom *g = (t_gatom *)x; if (g->atom.a_type==A_SYMBOL) { *************** *** 6742,6746 **** void binbuf_update(t_iemgui *x, t_symbol *qlass, int argc, t_atom *argv) { t_atom foo; ! t_binbuf *buf = x->te_binbuf; if (!buf) return; binbuf_clear(buf); --- 6740,6744 ---- void binbuf_update(t_iemgui *x, t_symbol *qlass, int argc, t_atom *argv) { t_atom foo; ! t_binbuf *buf = x->binbuf; if (!buf) return; binbuf_clear(buf);