[PD-cvs] pd/src desire.c, 1.1.2.139, 1.1.2.140 desire.h, 1.1.2.14, 1.1.2.15
Mathieu Bouchard
matju at users.sourceforge.net
Sun Sep 3 05:47:16 CEST 2006
Update of /cvsroot/pure-data/pd/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12056
Modified Files:
Tag: devel_0_39
desire.c desire.h
Log Message:
.
Index: desire.h
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/desire.h,v
retrieving revision 1.1.2.14
retrieving revision 1.1.2.15
diff -C2 -d -r1.1.2.14 -r1.1.2.15
*** desire.h 2 Sep 2006 19:10:30 -0000 1.1.2.14
--- desire.h 3 Sep 2006 03:47:14 -0000 1.1.2.15
***************
*** 1,53 ****
/*
! This file is part of PureData (impd branch)
! Copyright (c) 1997-1999 Miller Puckette.
Copyright 2000-2001 IEM KUG Graz Austria (Thomas Musil)
! Copyright 2004,2005 by Mathieu Bouchard
For information on usage and redistribution, and for a DISCLAIMER OF ALL
WARRANTIES, see the file, "LICENSE.txt", in this distribution.
- */
-
- #ifndef __DESIRE_H
- #define __DESIRE_H
-
- #include "m_pd.h"
-
- /* Copyright (c) 1997-1999 Miller Puckette.
- * For information on usage and redistribution, and for a DISCLAIMER OF ALL
- * WARRANTIES, see the file, "LICENSE.txt," in this distribution. */
-
- /* this file defines the structure for "glists" and related structures and
- functions. "Glists" and "canvases" and "graphs" used to be different
- structures until being unified in version 0.35.
-
- A glist occupies its own window if the "gl_havewindow" flag is set. Its
- appearance on its "parent" or "owner" (if it has one) is as a graph if
- "gl_isgraph" is set, and otherwise as a text box.
! A glist is "root" if it has no owner, i.e., a document window. In this
! case "gl_havewindow" is always set.
! We maintain a list of root windows, so that we can traverse the whole
! collection of everything in a Pd process.
! If a glist has a window it may still not be "mapped." Miniaturized
! windows aren't mapped, for example, but a window is also not mapped
! immediately upon creation. In either case gl_havewindow is true but
! gl_mapped is false.
! Closing a non-root window makes it invisible; closing a root destroys it.
! A glist that's just a text object on its parent is always "toplevel." An
! embedded glist can switch back and forth to appear as a toplevel by double-
! clicking on it. Single-clicking a text box makes the toplevel become visible
! and raises the window it's in.
! If a glist shows up as a graph on its parent, the graph is blanked while the
! glist has its own window, even if miniaturized.
*/
! /* NOTE: this file describes Pd implementation details which may change
! in future releases. The public (stable) API is in m_pd.h. */
#if defined(_LANGUAGE_C_PLUS_PLUS) || defined(__cplusplus)
--- 1,45 ----
/*
! This file is part of PureData
! Copyright 2004-2006 by Mathieu Bouchard
Copyright 2000-2001 IEM KUG Graz Austria (Thomas Musil)
! Copyright (c) 1997-1999 Miller Puckette.
For information on usage and redistribution, and for a DISCLAIMER OF ALL
WARRANTIES, see the file, "LICENSE.txt", in this distribution.
! this file declares the C interface for the second half of DesireData.
! this is where most of the differences between DesireData and PureData lie.
! SYNONYMS:
! 1. glist = graph = canvas = patcher; those were not always synonymous.
! however, graph sometimes means a canvas that is displaying an array.
! 2. outconnect = connection = patchcord = wire
! canvases have a few flags that determine their appearance:
! gl_havewindow: should open its own window (only if mapped? or...)
! gl_isgraph: the GOP flag: show as graph-on-parent, vs TextBox.
! gl_owner==0: it's a root canvas, should be in canvas_list.
! In this case "gl_havewindow" is always set.
! canvas_list is a list of root windows only, which can be traversed using glists_each.
! If a glist has a window it may still not be "mapped." Miniaturized
! windows aren't mapped, for example, but a window is also not mapped
! immediately upon creation. In either case gl_havewindow is true but
! gl_mapped is false.
! Closing a non-root window makes it invisible; closing a root destroys it.
! A glist that's just a text object on its parent is always "toplevel." An
! embedded glist can switch back and forth to appear as a toplevel by double-
! clicking on it. Single-clicking a text box makes the toplevel become visible
! and raises the window it's in.
+ If a glist shows up as a graph on its parent, the graph is blanked while the
+ glist has its own window, even if miniaturized.
*/
! #ifndef __DESIRE_H
! #define __DESIRE_H
!
! #include "m_pd.h"
#if defined(_LANGUAGE_C_PLUS_PLUS) || defined(__cplusplus)
***************
*** 55,70 ****
#endif
#ifdef GARRAY_THREAD_LOCK
#include <pthread.h> /* TB: for t_garray */
#endif
- /* ----------------------- data ------------------------------- */
-
- typedef struct _updateheader {
- struct _updateheader *upd_next;
- unsigned int upd_array:1; /* true if array, false if glist */
- unsigned int upd_queued:1; /* true if we're queued */
- } t_updateheader;
-
EXTERN_STRUCT _rtext;
#define t_rtext struct _rtext
--- 47,55 ----
#endif
+ /* i don't know whether this is currently used at all in DesireData. -- matju 2006.09 */
#ifdef GARRAY_THREAD_LOCK
#include <pthread.h> /* TB: for t_garray */
#endif
EXTERN_STRUCT _rtext;
#define t_rtext struct _rtext
***************
*** 88,111 ****
/* commented-out fields are not in DesireData */
typedef struct _editor {
- t_updateheader e_upd; /* update header structure */
- t_selection *e_updlist; /* list of objects to update */
t_rtext *e_rtext; /* text responder linked list */
- /* t_selection *e_selection; head of the selection list */
t_rtext *e_textedfor; /* the rtext if any that we are editing */
t_gobj *e_grab; /* object being "dragged" */
- /* t_glistmotionfn e_motionfn; ... motion callback */
- /* t_glistkeyfn e_keyfn; ... keypress callback */
t_binbuf *e_connectbuf; /* connections to deleted objects */
t_binbuf *e_deleted; /* last stuff we deleted */
t_guiconnect *e_guiconnect; /* GUI connection for filtering messages */
struct _glist *e_glist; /* glist which owns this */
- int e_xwas; /* xpos on last mousedown or motion event */
- int e_ywas; /* ypos, similarly */
- int e_selectline_index1; /* indices for the selected line if any */
- int e_selectline_outno; /* (only valid if e_selectedline is set) */
- int e_selectline_index2;
- int e_selectline_inno;
- t_outconnect *e_selectline_tag;
- /* unsigned int e_onmotion: 3; action to take on motion */
unsigned int e_lastmoved: 1; /* one if mouse has moved since click */
unsigned int e_textdirty: 1; /* one if e_textedfor has changed */
--- 73,83 ----
***************
*** 113,127 ****
} t_editor;
- /* editor structure for "garrays". We don't bother to delete and regenerate
- this structure when the "garray" becomes invisible or visible, although we
- could do so if the structure gets big (like the "editor" above.) */
-
- typedef struct _arrayvis {
- t_updateheader av_upd; /* update header structure */
- t_garray *av_garray; /* owning structure */
- } t_arrayvis;
-
/* the t_tick structure describes where to draw x and y "ticks" for a glist */
-
typedef struct _tick { /* where to put ticks on x or y axes */
float k_point; /* one point to draw a big tick at */
--- 85,89 ----
***************
*** 130,138 ****
} t_tick;
! /* the t_glist structure, which describes a list of elements that live on an
! area of a window.
!
! */
!
struct _glist {
t_object gl_obj; /* header in case we're a glist */
--- 92,96 ----
} t_tick;
! /* the t_glist structure, which describes a list of elements that live on an area of a window.*/
struct _glist {
t_object gl_obj; /* header in case we're a glist */
***************
*** 141,164 ****
int gl_valid; /* incremented when pointers might be stale */
struct _glist *gl_owner; /* parent glist, supercanvas, or 0 if none */
! int gl_pixwidth; /* width in pixels (on parent, if a graph) */
! int gl_pixheight;
! float gl_x1; /* bounding rectangle in our own coordinates */
! float gl_y1;
! float gl_x2;
! float gl_y2;
! int gl_screenx1; /* screen coordinates when toplevel */
! int gl_screeny1;
! int gl_screenx2;
! int gl_screeny2;
! int gl_xmargin; /* origin for GOP rectangle */
! int gl_ymargin;
! t_tick gl_xtick; /* ticks marking X values */
! int gl_nxlabels; /* number of X coordinate labels */
! t_symbol **gl_xlabel; /* ... an array to hold them */
! float gl_xlabely; /* ... and their Y coordinates */
! t_tick gl_ytick; /* same as above for Y ticks and labels */
! int gl_nylabels;
! t_symbol **gl_ylabel;
! float gl_ylabelx;
t_editor *gl_editor; /* editor structure when visible */
t_symbol *gl_name; /* symbol bound here */
--- 99,115 ----
int gl_valid; /* incremented when pointers might be stale */
struct _glist *gl_owner; /* parent glist, supercanvas, or 0 if none */
! /* width in pixels (on parent, if a graph) */
! int gl_pixwidth, gl_pixheight;
! /* bounding rectangle in our own coordinates */
! float gl_x1,gl_y1;
! float gl_x2,gl_y2;
! /* screen coordinates when toplevel */
! int gl_screenx1, gl_screeny1;
! int gl_screenx2, gl_screeny2;
! /* origin for GOP rectangle */
! int gl_xmargin, gl_ymargin;
! /* ticks and tick labels */
! t_tick gl_xtick; int gl_nxlabels; t_symbol **gl_xlabel; float gl_xlabely;
! t_tick gl_ytick; int gl_nylabels; t_symbol **gl_ylabel; float gl_ylabelx;
t_editor *gl_editor; /* editor structure when visible */
t_symbol *gl_name; /* symbol bound here */
***************
*** 172,176 ****
unsigned int gl_willvis:1; /* make me visible after loading */
unsigned int gl_edit:1; /* edit mode */
! unsigned int gl_isdeleting:1; /* we're inside glist_delete -- hack! */
unsigned int gl_goprect:1; /* draw rectangle for graph-on-parent */
unsigned int gl_isgraph:1; /* show as graph on parent */
--- 123,127 ----
unsigned int gl_willvis:1; /* make me visible after loading */
unsigned int gl_edit:1; /* edit mode */
! /* unsigned int gl_isdeleting:1; we're inside glist_delete -- hack! */
unsigned int gl_goprect:1; /* draw rectangle for graph-on-parent */
unsigned int gl_isgraph:1; /* show as graph on parent */
***************
*** 229,240 ****
typedef struct _linetraverser {
t_canvas *tr_x;
! t_object *tr_ob;
! int tr_nout;
! int tr_outno;
! t_object *tr_ob2;
! t_outlet *tr_outlet;
! t_inlet *tr_inlet;
! int tr_nin;
! int tr_inno;
t_outconnect *tr_nextoc;
int tr_nextoutno;
--- 180,185 ----
typedef struct _linetraverser {
t_canvas *tr_x;
! t_object *tr_ob; int tr_nout; int tr_outno; t_outlet *tr_outlet;
! t_object *tr_ob2; int tr_nin; int tr_inno; t_inlet *tr_inlet;
t_outconnect *tr_nextoc;
int tr_nextoutno;
***************
*** 274,283 ****
/* cursor definitions; used as return value for t_parentclickfn */
- #define CURSOR_RUNMODE_NOTHING 0
#define CURSOR_RUNMODE_CLICKME 1
#define CURSOR_RUNMODE_THICKEN 2
#define CURSOR_RUNMODE_ADDPOINT 3
- #define CURSOR_EDITMODE_NOTHING 4
- #define CURSOR_EDITMODE_CONNECT 5
#define CURSOR_EDITMODE_DISCONNECT 6
EXTERN void canvas_setcursor(t_glist *x, unsigned int cursornum);
--- 219,225 ----
***************
*** 323,327 ****
EXTERN void glist_glist(t_glist *g, t_symbol *s, int argc, t_atom *argv);
EXTERN t_glist *glist_addglist(t_glist *g, t_symbol *sym,
! float x1, float y1, float x2, float y2,
float px1, float py1, float px2, float py2);
EXTERN void glist_arraydialog(t_glist *parent, t_symbol *name,
--- 265,269 ----
EXTERN void glist_glist(t_glist *g, t_symbol *s, int argc, t_atom *argv);
EXTERN t_glist *glist_addglist(t_glist *g, t_symbol *sym,
! float x1, float y1, float x2, float y2,
float px1, float py1, float px2, float py2);
EXTERN void glist_arraydialog(t_glist *parent, t_symbol *name,
***************
*** 337,347 ****
EXTERN void text_setto(t_text *x, t_glist *glist, char *buf, int bufsize);
! EXTERN void text_drawborder(t_text *x, t_glist *glist, char *tag,
! int width, int height, int firsttime);
EXTERN void text_eraseborder(t_text *x, t_glist *glist, char *tag);
EXTERN int text_xcoord(t_text *x, t_glist *glist);
EXTERN int text_ycoord(t_text *x, t_glist *glist);
! EXTERN int text_xpix(t_text *x, t_glist *glist);
! EXTERN int text_ypix(t_text *x, t_glist *glist);
EXTERN int text_shouldvis(t_text *x, t_glist *glist);
--- 279,288 ----
EXTERN void text_setto(t_text *x, t_glist *glist, char *buf, int bufsize);
! EXTERN void text_drawborder(t_text *x, t_glist *glist, char *tag, int width, int height, int firsttime);
EXTERN void text_eraseborder(t_text *x, t_glist *glist, char *tag);
EXTERN int text_xcoord(t_text *x, t_glist *glist);
EXTERN int text_ycoord(t_text *x, t_glist *glist);
! EXTERN int text_xpix( t_text *x, t_glist *glist);
! EXTERN int text_ypix( t_text *x, t_glist *glist);
EXTERN int text_shouldvis(t_text *x, t_glist *glist);
***************
*** 352,356 ****
EXTERN void rtext_gettext(t_rtext *x, char **buf, int *bufsize);
- /* -------------------- functions on canvases ------------------------ */
EXTERN t_class *canvas_class;
EXTERN t_canvas *canvas_new(void *dummy, t_symbol *sel, int argc, t_atom *argv);
--- 293,296 ----
***************
*** 458,466 ****
EXTERN float fielddesc_cvtfromcoord(t_fielddesc *f, float coord);
- /* ----------------------- guiconnects, g_guiconnect.c --------- */
EXTERN t_guiconnect *guiconnect_new(t_pd *who, t_symbol *sym);
EXTERN void guiconnect_notarget(t_guiconnect *x, double timedelay);
- /* ------------- IEMGUI routines used in other g_ files ---------------- */
EXTERN t_symbol *iemgui_raute2dollar(t_symbol *s);
EXTERN t_symbol *iemgui_dollar2raute(t_symbol *s);
--- 398,404 ----
***************
*** 477,481 ****
EXTERN void pd_upload(t_gobj *self);
EXTERN void sys_mgui(void *self, const char *sel, const char *fmt, ...);
- EXTERN void iemgui_propertiesfn(t_gobj *x, t_glist *owner);
EXTERN t_symbol *s_empty;
EXTERN int convert_color2(int x);
--- 415,418 ----
Index: desire.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/desire.c,v
retrieving revision 1.1.2.139
retrieving revision 1.1.2.140
diff -C2 -d -r1.1.2.139 -r1.1.2.140
*** desire.c 2 Sep 2006 19:00:37 -0000 1.1.2.139
--- desire.c 3 Sep 2006 03:47:13 -0000 1.1.2.140
***************
*** 455,462 ****
t->tr_outno = outno;
}
! t->tr_nextoc = obj_nexttraverseoutlet(rval, &t->tr_ob2,
! &t->tr_inlet, &t->tr_inno);
t->tr_nin = obj_ninlets(t->tr_ob2);
! if (!t->tr_nin) bug("drawline");
return rval;
}
--- 455,461 ----
t->tr_outno = outno;
}
! t->tr_nextoc = obj_nexttraverseoutlet(rval, &t->tr_ob2, &t->tr_inlet, &t->tr_inno);
t->tr_nin = obj_ninlets(t->tr_ob2);
! if (!t->tr_nin) bug("linetraverser_next");
return rval;
}
***************
*** 562,567 ****
}
! /* make a new glist and add it to this glist. It will appear as
! a "graph", not a text object. */
t_glist *glist_addglist(t_glist *g, t_symbol *sym,
float x1, float y1, float x2, float y2,
--- 561,567 ----
}
! #define GLIST_DEFGRAPHWIDTH 200
! #define GLIST_DEFGRAPHHEIGHT 140
! /* make a new glist and add it to this glist. It will appear as a "graph", not a text object. */
t_glist *glist_addglist(t_glist *g, t_symbol *sym,
float x1, float y1, float x2, float y2,
***************
*** 1320,1328 ****
/* ------------------------ event handling ------------------------ */
- #define CURSOR_RUNMODE_CLICKME 1
- #define CURSOR_RUNMODE_THICKEN 2
- #define CURSOR_RUNMODE_ADDPOINT 3
- #define CURSOR_EDITMODE_DISCONNECT 6
-
void canvas_inlettip(t_canvas* x,t_object* ob,int closest,int xpos,int ypos) {
/*
--- 1320,1323 ----
***************
*** 2691,2704 ****
}
- /* this is to protect against a hairy problem in which deleting
- a sub-canvas might delete an inlet on a box, after the box had
- been invisible-ized, so that we have to protect against redrawing it! */
- int canvas_setdeleting(t_canvas *x, int flag) {
- int ret = x->gl_isdeleting;
- x->gl_isdeleting = flag;
- return ret;
- }
-
-
/* delete an object from a glist and free it */
void glist_delete(t_glist *x, t_gobj *y) {
--- 2686,2689 ----
***************
*** 2706,2712 ****
t_object *ob;
t_gotfn chkdsp = zgetfn(&y->g_pd, gensym("dsp"));
- t_canvas *canvas = glist_getcanvas(x);
int drawcommand = class_isdrawcommand(y->g_pd);
- int wasdeleting = canvas_setdeleting(canvas, 1);
if (x->gl_editor && x->gl_editor->e_grab == y) x->gl_editor->e_grab = 0;
--- 2691,2695 ----
***************
*** 2729,2733 ****
if (drawcommand)
canvas_redrawallfortemplate(template_findbyname(canvas_makebindsym(glist_getcanvas(x)->gl_name)), 1);
- canvas_setdeleting(canvas, wasdeleting);
x->gl_valid = ++glist_valid;
}
--- 2712,2715 ----
***************
*** 3009,3025 ****
float glist_xtopixels(t_glist *x, float xval) {
int x1, y1, x2, y2;
! if (!x->gl_isgraph) return (xval - x->gl_x1) / (x->gl_x2 - x->gl_x1);
! if (x->gl_havewindow) return (x->gl_screenx2 - x->gl_screenx1) * (xval - x->gl_x1) / (x->gl_x2 - x->gl_x1);
if (!x->gl_owner) bug("glist_pixelstox");
graph_graphrect(&x->gl_gobj, x->gl_owner, &x1, &y1, &x2, &y2);
! return x1 + (x2 - x1) * (xval - x->gl_x1) / (x->gl_x2 - x->gl_x1);
}
float glist_ytopixels(t_glist *x, float yval) {
int x1, y1, x2, y2;
! if (!x->gl_isgraph) return (yval - x->gl_y1) / (x->gl_y2 - x->gl_y1);
! if (x->gl_havewindow) return (x->gl_screeny2 - x->gl_screeny1) * (yval - x->gl_y1) / (x->gl_y2 - x->gl_y1);
if (!x->gl_owner) bug("glist_pixelstox");
graph_graphrect(&x->gl_gobj, x->gl_owner, &x1, &y1, &x2, &y2);
! return y1 + (y2 - y1) * (yval - x->gl_y1) / (x->gl_y2 - x->gl_y1);
}
--- 2991,3009 ----
float glist_xtopixels(t_glist *x, float xval) {
int x1, y1, x2, y2;
! float width = x->gl_x2-x->gl_x1;
! if (!x->gl_isgraph) return (xval - x->gl_x1) / width;
! if (x->gl_havewindow) return (x->gl_screenx2-x->gl_screenx1) * (xval-x->gl_x1) / width;
if (!x->gl_owner) bug("glist_pixelstox");
graph_graphrect(&x->gl_gobj, x->gl_owner, &x1, &y1, &x2, &y2);
! return x1 + (x2 - x1) * (xval - x->gl_x1) / width;
}
float glist_ytopixels(t_glist *x, float yval) {
int x1, y1, x2, y2;
! float height = x->gl_y2-x->gl_y1;
! if (!x->gl_isgraph) return (yval - x->gl_y1) / height;
! if (x->gl_havewindow) return (x->gl_screeny2-x->gl_screeny1) * (yval-x->gl_y1) / height;
if (!x->gl_owner) bug("glist_pixelstox");
graph_graphrect(&x->gl_gobj, x->gl_owner, &x1, &y1, &x2, &y2);
! return y1 + (y2 - y1) * (yval - x->gl_y1) / height;
}
***************
*** 3142,3153 ****
int tickpix = i%x->gl_ytick.k_lperb ? 2 : 4;
int y0 = (int)glist_ytopixels(x, f);
! sys_vgui(".x%lx.c create line %d %d %d %d -tags %s\n", (long)c, x1, y0, x1 + tickpix, y0, tag);
! sys_vgui(".x%lx.c create line %d %d %d %d -tags %s\n", (long)c, x2, y0, x2 - tickpix, y0, tag);
}
for (i = 1, f = x->gl_ytick.k_point - x->gl_ytick.k_inc; f > 0.99 * lbound + 0.01 * ubound; i++, f -= x->gl_ytick.k_inc) {
int tickpix = i%x->gl_ytick.k_lperb ? 2 : 4;
int y0 = (int)glist_ytopixels(x, f);
! sys_vgui(".x%lx.c create line %d %d %d %d -tags %s\n", (long)c, x1, y0, x1 + tickpix, y0, tag);
! sys_vgui(".x%lx.c create line %d %d %d %d -tags %s\n", (long)c, x2, y0, x2 - tickpix, y0, tag);
}
}
--- 3126,3137 ----
int tickpix = i%x->gl_ytick.k_lperb ? 2 : 4;
int y0 = (int)glist_ytopixels(x, f);
! sys_vgui(".x%lx.c create line %d %d %d %d -tags %s\n", (long)c, x1, y0, x1+tickpix, y0, tag);
! sys_vgui(".x%lx.c create line %d %d %d %d -tags %s\n", (long)c, x2, y0, x2-tickpix, y0, tag);
}
for (i = 1, f = x->gl_ytick.k_point - x->gl_ytick.k_inc; f > 0.99 * lbound + 0.01 * ubound; i++, f -= x->gl_ytick.k_inc) {
int tickpix = i%x->gl_ytick.k_lperb ? 2 : 4;
int y0 = (int)glist_ytopixels(x, f);
! sys_vgui(".x%lx.c create line %d %d %d %d -tags %s\n", (long)c, x1, y0, x1+tickpix, y0, tag);
! sys_vgui(".x%lx.c create line %d %d %d %d -tags %s\n", (long)c, x2, y0, x2-tickpix, y0, tag);
}
}
***************
*** 3247,3251 ****
x->x_who = who;
x->x_sym = sym;
! pd_bind(&x->x_obj.ob_pd, sym);
return x;
}
--- 3231,3235 ----
x->x_who = who;
x->x_sym = sym;
! pd_bind((t_pd *)x, sym);
return x;
}
***************
*** 3253,3257 ****
/* cleanup routine; delete any resources we have */
static void guiconnect_free(t_guiconnect *x) {
! if (x->x_sym) pd_unbind(&x->x_obj.ob_pd, x->x_sym);
if (x->x_clock) clock_free(x->x_clock);
}
--- 3237,3241 ----
/* cleanup routine; delete any resources we have */
static void guiconnect_free(t_guiconnect *x) {
! if (x->x_sym) pd_unbind((t_pd *)x, x->x_sym);
if (x->x_clock) clock_free(x->x_clock);
}
***************
*** 3264,3268 ****
or for a timeout. */
void guiconnect_notarget(t_guiconnect *x, double timedelay) {
! if (!x->x_sym) pd_free(&x->x_obj.ob_pd);
else {
x->x_who = 0;
--- 3248,3252 ----
or for a timeout. */
void guiconnect_notarget(t_guiconnect *x, double timedelay) {
! if (!x->x_sym) pd_free((t_pd *)x);
else {
x->x_who = 0;
***************
*** 3283,3289 ****
a timeout after which the guiconnect will disappear.) */
static void guiconnect_signoff(t_guiconnect *x) {
! if (!x->x_who) pd_free(&x->x_obj.ob_pd);
else {
! pd_unbind(&x->x_obj.ob_pd, x->x_sym);
x->x_sym = 0;
}
--- 3267,3273 ----
a timeout after which the guiconnect will disappear.) */
static void guiconnect_signoff(t_guiconnect *x) {
! if (!x->x_who) pd_free((t_pd *)x);
else {
! pd_unbind((t_pd *)x, x->x_sym);
x->x_sym = 0;
}
***************
*** 3491,3502 ****
}
! void glist_read(t_glist *x, t_symbol *filename, t_symbol *format)
! {glist_doread(x, filename, format, 1);}
! void glist_mergefile(t_glist *x, t_symbol *filename, t_symbol *format)
! {glist_doread(x, filename, format, 0);}
! /* read text from a "properties" window, called from a gfxstub set
! up in scalar_properties(). We try to restore the object; if successful
! we delete the scalar and put the new thing in its place on the list. */
void canvas_dataproperties(t_canvas *x, t_scalar *sc, t_binbuf *b) {
int ntotal, nnew, scindex;
--- 3475,3484 ----
}
! void glist_read(t_glist *x, t_symbol *filename, t_symbol *format) {glist_doread(x,filename,format,1);}
! void glist_mergefile(t_glist *x, t_symbol *filename, t_symbol *format) {glist_doread(x,filename,format,0);}
! /* read text from a "properties" window, called from a gfxstub set
! up in scalar_properties(). We try to restore the object; if successful
! we delete the scalar and put the new thing in its place on the list. */
void canvas_dataproperties(t_canvas *x, t_scalar *sc, t_binbuf *b) {
int ntotal, nnew, scindex;
More information about the Pd-cvs
mailing list