tilde~
Puredata Qt-based GUI
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
g_canvas.h
Go to the documentation of this file.
1 /* Copyright (c) 1997-1999 Miller Puckette.
2 * For information on usage and redistribution, and for a DISCLAIMER OF ALL
3 * WARRANTIES, see the file, "LICENSE.txt," in this distribution. */
4 
5 /* this file defines the structure for "glists" and related structures and
6 functions. "Glists" and "canvases" and "graphs" used to be different
7 structures until being unified in version 0.35.
8 
9 A glist occupies its own window if the "gl_havewindow" flag is set. Its
10 appearance on its "parent", also called "owner", (if it has one) is as a graph
11 if "gl_isgraph" is set, and otherwise as a text box.
12 
13 A glist is "root" if it has no owner, i.e., a document window. In this
14 case "gl_havewindow" is always set.
15 
16 We maintain a list of root windows, so that we can traverse the whole
17 collection of everything in a Pd process.
18 
19 If a glist has a window it may still not be "mapped." Miniaturized
20 windows aren't mapped, for example, but a window is also not mapped
21 immediately upon creation. In either case gl_havewindow is true but
22 gl_mapped is false.
23 
24 Closing a non-root window makes it invisible; closing a root destroys it.
25 
26 A glist that's just a text object on its parent is always "toplevel." An
27 embedded glist can switch back and forth to appear as a toplevel by double-
28 clicking on it. Single-clicking a text box makes the toplevel become visible
29 and raises the window it's in.
30 
31 If a glist shows up as a graph on its parent, the graph is blanked while the
32 glist has its own window, even if miniaturized.
33 
34 */
35 
36 /* NOTE: this file describes Pd implementation details which may change
37 in future releases. The public (stable) API is in m_pd.h. */
38 
39 #ifndef G_CANVAS_H
40 #define G_CANVAS_H
41 
42 #if defined(_LANGUAGE_C_PLUS_PLUS) || defined(__cplusplus)
43 extern "C" {
44 #endif
45 
46 /* --------------------- geometry ---------------------------- */
47 #define IOWIDTH 7 /* width of an inlet/outlet in pixels */
48 #define IOMIDDLE ((IOWIDTH-1)/2)
49 #define GLIST_DEFGRAPHWIDTH 200
50 #define GLIST_DEFGRAPHHEIGHT 140
51 /* ----------------------- data ------------------------------- */
52 
53 typedef struct _updateheader
54 {
56  unsigned int upd_array:1; /* true if array, false if glist */
57  unsigned int upd_queued:1; /* true if we're queued */
59 
60  /* types to support glists grabbing mouse motion or keys from parent */
61 typedef void (*t_glistmotionfn)(void *z, t_floatarg dx, t_floatarg dy);
62 typedef void (*t_glistkeyfn)(void *z, t_floatarg key);
63 
65 #define t_rtext struct _rtext
66 
68 #define t_gtemplate struct _gtemplate
69 
71 #define t_guiconnect struct _guiconnect
72 
74 #define t_tscalar struct _tscalar
75 
77 #define t_canvasenvironment struct _canvasenvironment
78 
80 #define t_fielddesc struct _fielddesc
81 
82 typedef struct _selection
83 {
86 } t_selection;
87 
88  /* this structure is instantiated whenever a glist becomes visible. */
89 typedef struct _editor
90 {
91  t_updateheader e_upd; /* update header structure */
92  t_selection *e_updlist; /* list of objects to update */
93  t_rtext *e_rtext; /* text responder linked list */
94  t_selection *e_selection; /* head of the selection list */
95  t_rtext *e_textedfor; /* the rtext if any that we are editing */
96  t_gobj *e_grab; /* object being "dragged" */
97  t_glistmotionfn e_motionfn; /* ... motion callback */
98  t_glistkeyfn e_keyfn; /* ... keypress callback */
99  t_binbuf *e_connectbuf; /* connections to deleted objects */
100  t_binbuf *e_deleted; /* last stuff we deleted */
101  t_guiconnect *e_guiconnect; /* GUI connection for filtering messages */
102  struct _glist *e_glist; /* glist which owns this */
103  int e_xwas; /* xpos on last mousedown or motion event */
104  int e_ywas; /* ypos, similarly */
105  int e_selectline_index1; /* indices for the selected line if any */
106  int e_selectline_outno; /* (only valid if e_selectedline is set) */
110  unsigned int e_onmotion: 3; /* action to take on motion */
111  unsigned int e_lastmoved: 1; /* one if mouse has moved since click */
112  unsigned int e_textdirty: 1; /* one if e_textedfor has changed */
113  unsigned int e_selectedline: 1; /* one if a line is selected */
114  t_clock *e_clock; /* clock to filter GUI move messages */
115  int e_xnew; /* xpos for next move event */
116  int e_ynew; /* ypos, similarly */
117 } t_editor;
118 
119 #define MA_NONE 0 /* e_onmotion: do nothing on mouse motion */
120 #define MA_MOVE 1 /* drag the selection around */
121 #define MA_CONNECT 2 /* make a connection */
122 #define MA_REGION 3 /* selection region */
123 #define MA_PASSOUT 4 /* send on to e_grab */
124 #define MA_DRAGTEXT 5 /* drag in text editor to alter selection */
125 #define MA_RESIZE 6 /* drag to resize */
126 
127 /* editor structure for "garrays". We don't bother to delete and regenerate
128 this structure when the "garray" becomes invisible or visible, although we
129 could do so if the structure gets big (like the "editor" above.) */
130 
131 typedef struct _arrayvis
132 {
133  t_updateheader av_upd; /* update header structure */
134  t_garray *av_garray; /* owning structure */
135 } t_arrayvis;
136 
137 /* the t_tick structure describes where to draw x and y "ticks" for a glist */
138 
139 typedef struct _tick /* where to put ticks on x or y axes */
140 {
141  t_float k_point; /* one point to draw a big tick at */
142  t_float k_inc; /* x or y increment per little tick */
143  int k_lperb; /* little ticks per big; 0 if no ticks to draw */
144 } t_tick;
145 
146 /* the t_glist structure, which describes a list of elements that live on an
147 area of a window.
148 
149 */
150 
151 struct _glist
152 {
153  t_object gl_obj; /* header in case we're a glist */
154  t_gobj *gl_list; /* the actual data */
155  struct _gstub *gl_stub; /* safe pointer handler */
156  int gl_valid; /* incremented when pointers might be stale */
157  struct _glist *gl_owner; /* parent glist, supercanvas, or 0 if none */
158  int gl_pixwidth; /* width in pixels (on parent, if a graph) */
160  t_float gl_x1; /* bounding rectangle in our own coordinates */
164  int gl_screenx1; /* screen coordinates when toplevel */
168  int gl_xmargin; /* origin for GOP rectangle */
170  t_tick gl_xtick; /* ticks marking X values */
171  int gl_nxlabels; /* number of X coordinate labels */
172  t_symbol **gl_xlabel; /* ... an array to hold them */
173  t_float gl_xlabely; /* ... and their Y coordinates */
174  t_tick gl_ytick; /* same as above for Y ticks and labels */
178  t_editor *gl_editor; /* editor structure when visible */
179  t_symbol *gl_name; /* symbol bound here */
180  int gl_font; /* nominal font size in points, e.g., 10 */
181  int gl_zoom; /* zoom factor (integer zoom-in only) */
182  struct _glist *gl_next; /* link in list of toplevels */
183  t_canvasenvironment *gl_env; /* root canvases and abstractions only */
184  unsigned int gl_havewindow:1; /* true if we own a window */
185  unsigned int gl_mapped:1; /* true if, moreover, it's "mapped" */
186  unsigned int gl_dirty:1; /* (root canvas only:) patch has changed */
187  unsigned int gl_loading:1; /* am now loading from file */
188  unsigned int gl_willvis:1; /* make me visible after loading */
189  unsigned int gl_edit:1; /* edit mode */
190  unsigned int gl_isdeleting:1; /* we're inside glist_delete -- hack! */
191  unsigned int gl_goprect:1; /* draw rectangle for graph-on-parent */
192  unsigned int gl_isgraph:1; /* show as graph on parent */
193  unsigned int gl_hidetext:1; /* hide object-name + args when doing graph on parent */
194  unsigned int gl_private:1; /* private flag used in x_scalar.c */
195  unsigned int gl_isclone:1; /* esists as part of a clone object */
196  /* CEAMMC grid */
197  unsigned int gl_grid:1;
198 };
199 
200 #define gl_gobj gl_obj.te_g
201 #define gl_pd gl_gobj.g_pd
202 
203 /* a data structure to describe a field in a pure datum */
204 
205 #define DT_FLOAT 0
206 #define DT_SYMBOL 1
207 #define DT_TEXT 2
208 #define DT_ARRAY 3
209 
210 typedef struct _dataslot
211 {
212  int ds_type;
214  t_symbol *ds_arraytemplate; /* filled in for arrays only */
215 } t_dataslot;
216 
217 typedef struct _template
218 {
219  t_pd t_pdobj; /* header */
220  struct _gtemplate *t_list; /* list of "struct"/gtemplate objects */
221  t_symbol *t_sym; /* name */
222  int t_n; /* number of dataslots (fields) */
223  t_dataslot *t_vec; /* array of dataslots */
224 } t_template;
225 
226 struct _array
227 {
228  int a_n; /* number of elements */
229  int a_elemsize; /* size in bytes; LATER get this from template */
230  char *a_vec; /* array of elements */
231  t_symbol *a_templatesym; /* template for elements */
232  int a_valid; /* protection against stale pointers into array */
233  t_gpointer a_gp; /* pointer to scalar or array element we're in */
234  t_gstub *a_stub; /* stub for pointing into this array */
235 };
236 
237  /* structure for traversing all the connections in a glist */
238 typedef struct _linetraverser
239 {
242  int tr_nout;
243  int tr_outno;
247  int tr_nin;
248  int tr_inno;
255 
256 /* function types used to define graphical behavior for gobjs, a bit like X
257 widgets. We don't use Pd methods because Pd's typechecking can't specify the
258 types of pointer arguments. Also it's more convenient this way, since
259 every "patchable" object can just get the "text" behaviors. */
260 
261  /* Call this to get a gobj's bounding rectangle in pixels */
262 typedef void (*t_getrectfn)(t_gobj *x, struct _glist *glist,
263  int *x1, int *y1, int *x2, int *y2);
264  /* and this to displace a gobj: */
265 typedef void (*t_displacefn)(t_gobj *x, struct _glist *glist, int dx, int dy);
266  /* change color to show selection: */
267 typedef void (*t_selectfn)(t_gobj *x, struct _glist *glist, int state);
268  /* change appearance to show activation/deactivation: */
269 typedef void (*t_activatefn)(t_gobj *x, struct _glist *glist, int state);
270  /* warn a gobj it's about to be deleted */
271 typedef void (*t_deletefn)(t_gobj *x, struct _glist *glist);
272  /* making visible or invisible */
273 typedef void (*t_visfn)(t_gobj *x, struct _glist *glist, int flag);
274  /* field a mouse click (when not in "edit" mode) */
275 typedef int (*t_clickfn)(t_gobj *x, struct _glist *glist,
276  int xpix, int ypix, int shift, int alt, int dbl, int doit);
277  /* ... and later, resizing; getting/setting font or color... */
278 
280 {
288 };
289 
290 /* -------- behaviors for scalars defined by objects in template --------- */
291 /* these are set by "drawing commands" in g_template.c which add appearance to
292 scalars, which live in some other window. If the scalar is just included
293 in a canvas the "parent" is a misnomer. There is also a text scalar object
294 which really does draw the scalar on the parent window; see g_scalar.c. */
295 
296 /* note how the click function wants the whole scalar, not the "data", so
297 doesn't work on array elements... LATER reconsider this */
298 
299  /* bounding rectangle: */
300 typedef void (*t_parentgetrectfn)(t_gobj *x, struct _glist *glist,
301  t_word *data, t_template *tmpl, t_float basex, t_float basey,
302  int *x1, int *y1, int *x2, int *y2);
303  /* displace it */
304 typedef void (*t_parentdisplacefn)(t_gobj *x, struct _glist *glist,
305  t_word *data, t_template *tmpl, t_float basex, t_float basey,
306  int dx, int dy);
307  /* change color to show selection */
308 typedef void (*t_parentselectfn)(t_gobj *x, struct _glist *glist,
309  t_word *data, t_template *tmpl, t_float basex, t_float basey,
310  int state);
311  /* change appearance to show activation/deactivation: */
312 typedef void (*t_parentactivatefn)(t_gobj *x, struct _glist *glist,
313  t_word *data, t_template *tmpl, t_float basex, t_float basey,
314  int state);
315  /* making visible or invisible */
316 typedef void (*t_parentvisfn)(t_gobj *x, struct _glist *glist,
317  t_word *data, t_template *tmpl, t_float basex, t_float basey,
318  int flag);
319  /* field a mouse click */
320 typedef int (*t_parentclickfn)(t_gobj *x, struct _glist *glist,
321  t_word *data, t_template *tmpl, t_scalar *sc, t_array *ap,
322  t_float basex, t_float basey,
323  int xpix, int ypix, int shift, int alt, int dbl, int doit);
324 
326 {
333 };
334 
335  /* cursor definitions; used as return value for t_parentclickfn */
336 #define CURSOR_RUNMODE_NOTHING 0
337 #define CURSOR_RUNMODE_CLICKME 1
338 #define CURSOR_RUNMODE_THICKEN 2
339 #define CURSOR_RUNMODE_ADDPOINT 3
340 #define CURSOR_EDITMODE_NOTHING 4
341 #define CURSOR_EDITMODE_CONNECT 5
342 #define CURSOR_EDITMODE_DISCONNECT 6
343 #define CURSOR_EDITMODE_RESIZE 7
344 EXTERN void canvas_setcursor(t_glist *x, unsigned int cursornum);
345 
346 extern t_canvas *canvas_whichfind; /* last canvas we did a find in */
348 extern int glist_valid; /* incremented when pointers might be stale */
349 
350 #define PLOTSTYLE_POINTS 0 /* plotting styles for arrays */
351 #define PLOTSTYLE_POLY 1
352 #define PLOTSTYLE_BEZ 2
353 
354 /* ------------------- functions on any gobj ----------------------------- */
355 EXTERN void gobj_getrect(t_gobj *x, t_glist *owner, int *x1, int *y1,
356  int *x2, int *y2);
357 EXTERN void gobj_displace(t_gobj *x, t_glist *owner, int dx, int dy);
358 EXTERN void gobj_select(t_gobj *x, t_glist *owner, int state);
359 EXTERN void gobj_activate(t_gobj *x, t_glist *owner, int state);
360 EXTERN void gobj_delete(t_gobj *x, t_glist *owner);
361 EXTERN void gobj_vis(t_gobj *x, t_glist *glist, int flag);
362 EXTERN int gobj_click(t_gobj *x, struct _glist *glist,
363  int xpix, int ypix, int shift, int alt, int dbl, int doit);
364 EXTERN void gobj_save(t_gobj *x, t_binbuf *b);
365 EXTERN void gobj_properties(t_gobj *x, struct _glist *glist);
366 EXTERN void gobj_save(t_gobj *x, t_binbuf *b);
367 EXTERN int gobj_shouldvis(t_gobj *x, struct _glist *glist);
368 
369 /* -------------------- functions on glists --------------------- */
370 EXTERN t_glist *glist_new( void);
371 EXTERN void glist_init(t_glist *x);
372 EXTERN void glist_add(t_glist *x, t_gobj *g);
373 
374 EXTERN void glist_clear(t_glist *x);
377 EXTERN void glist_select(t_glist *x, t_gobj *y);
378 EXTERN void glist_deselect(t_glist *x, t_gobj *y);
379 EXTERN void glist_noselect(t_glist *x);
381 EXTERN void glist_delete(t_glist *x, t_gobj *y);
382 EXTERN void glist_retext(t_glist *x, t_text *y);
383 EXTERN void glist_grab(t_glist *x, t_gobj *y, t_glistmotionfn motionfn,
384  t_glistkeyfn keyfn, int xpos, int ypos);
392 EXTERN void glist_sort(t_glist *canvas);
393 EXTERN void glist_read(t_glist *x, t_symbol *filename, t_symbol *format);
394 EXTERN void glist_mergefile(t_glist *x, t_symbol *filename, t_symbol *format);
395 
402 
403 EXTERN void glist_getnextxy(t_glist *gl, int *xval, int *yval);
404 EXTERN void glist_glist(t_glist *g, t_symbol *s, int argc, t_atom *argv);
406  t_float x1, t_float y1, t_float x2, t_float y2,
407  t_float px1, t_float py1, t_float px2, t_float py2);
408 EXTERN void glist_arraydialog(t_glist *parent, t_symbol *name,
409  t_floatarg size, t_floatarg saveit, t_floatarg newgraph);
410 EXTERN t_binbuf *glist_writetobinbuf(t_glist *x, int wholething);
412 EXTERN void glist_redraw(t_glist *x);
413 EXTERN void glist_drawiofor(t_glist *glist, t_object *ob, int firsttime,
414  char *tag, int x1, int y1, int x2, int y2);
415 EXTERN void glist_eraseiofor(t_glist *glist, t_object *ob, char *tag);
419  t_inlet *inp, t_outlet *outp);
420 extern int glist_amreloadingabstractions; /* stop GUI changes while reloading */
421 
422 /* -------------------- functions on texts ------------------------- */
423 EXTERN void text_setto(t_text *x, t_glist *glist, char *buf, int bufsize);
424 EXTERN void text_drawborder(t_text *x, t_glist *glist, char *tag,
425  int width, int height, int firsttime);
426 EXTERN void text_eraseborder(t_text *x, t_glist *glist, char *tag);
427 EXTERN int text_xcoord(t_text *x, t_glist *glist);
428 EXTERN int text_ycoord(t_text *x, t_glist *glist);
429 EXTERN int text_xpix(t_text *x, t_glist *glist);
430 EXTERN int text_ypix(t_text *x, t_glist *glist);
431 
432 /* -------------------- functions on rtexts ------------------------- */
433 #define RTEXT_DOWN 1
434 #define RTEXT_DRAG 2
435 #define RTEXT_DBL 3
436 #define RTEXT_SHIFT 4
437 
438 EXTERN t_rtext *rtext_new(t_glist *glist, t_text *who);
440 EXTERN void rtext_draw(t_rtext *x);
441 EXTERN void rtext_erase(t_rtext *x);
443 EXTERN int rtext_height(t_rtext *x);
444 EXTERN void rtext_displace(t_rtext *x, int dx, int dy);
445 EXTERN void rtext_select(t_rtext *x, int state);
446 EXTERN void rtext_activate(t_rtext *x, int state);
447 EXTERN void rtext_free(t_rtext *x);
448 EXTERN void rtext_key(t_rtext *x, int n, t_symbol *s);
449 EXTERN void rtext_mouse(t_rtext *x, int xval, int yval, int flag);
450 EXTERN void rtext_retext(t_rtext *x);
451 EXTERN int rtext_width(t_rtext *x);
452 EXTERN int rtext_height(t_rtext *x);
453 EXTERN char *rtext_gettag(t_rtext *x);
454 EXTERN void rtext_gettext(t_rtext *x, char **buf, int *bufsize);
455 EXTERN void rtext_getseltext(t_rtext *x, char **buf, int *bufsize);
456 
457 /* -------------------- functions on canvases ------------------------ */
459 
460 EXTERN t_canvas *canvas_new(void *dummy, t_symbol *sel, int argc, t_atom *argv);
462 EXTERN void canvas_vistext(t_canvas *x, t_text *y);
463 EXTERN void canvas_fixlinesfor(t_canvas *x, t_text *text);
467 EXTERN void canvas_redraw(t_canvas *x);
470 
472 EXTERN void canvas_rminlet(t_canvas *x, t_inlet *ip);
475 EXTERN void canvas_redrawallfortemplate(t_template *tmpl, int action);
486 typedef int (*t_canvasapply)(t_canvas *x, t_int x1, t_int x2, t_int x3);
487 
489  t_int x1, t_int x2, t_int x3);
490 
493 EXTERN void canvas_free(t_canvas *x);
494 EXTERN void canvas_updatewindowlist( void);
495 EXTERN void canvas_editmode(t_canvas *x, t_floatarg state);
501 EXTERN void canvas_rename(t_canvas *x, t_symbol *s, t_symbol *dir);
503 EXTERN int canvas_hitbox(t_canvas *x, t_gobj *y, int xpos, int ypos,
504  int *x1p, int *y1p, int *x2p, int *y2p);
505 EXTERN int canvas_setdeleting(t_canvas *x, int flag);
506 
507  //ceammc test
508  EXTERN void *subcanvas_new(t_symbol *s);
509  EXTERN void canvas_setgraph(t_glist *x, int flag, int nogoprect);
510 
511 #define LB_LOAD 0 /* "loadbang" actions - 0 for original meaning */
512 #define LB_INIT 1 /* loaded but not yet connected to parent patch */
513 #define LB_CLOSE 2 /* about to close */
514 
515  /* Pointer to canvas that was saved necessitating a reload of abstractions
516  of that name. We use as a flag to stop canvases from being marked "dirty"
517  if we have to touch them to reload; also suppress window list update.
518  "clone~" uses this to identify which copy NOT to reload */
520 
521 typedef void (*t_undofn)(t_canvas *canvas, void *buf,
522  int action); /* a function that does UNDO/REDO */
523 #define UNDO_FREE 0 /* free current undo/redo buffer */
524 #define UNDO_UNDO 1 /* undo */
525 #define UNDO_REDO 2 /* redo */
526 EXTERN void canvas_setundo(t_canvas *x, t_undofn undofn, void *buf,
527  const char *name);
528 EXTERN void canvas_noundo(t_canvas *x);
530 
532  t_floatarg fwhoout, t_floatarg foutno,t_floatarg fwhoin, t_floatarg finno);
534  t_float index1, t_float outno, t_float index2, t_float inno);
536  t_text *ob1, int n1, t_text *ob2, int n2);
537 EXTERN void canvas_selectinrect(t_canvas *x, int lox, int loy, int hix, int hiy);
538 
540 
541 /* a function that gets called for each path by canvas_path_iterate
542  * if the function returns 0, the iteration is terminated;
543  * <path> pointer to the path
544  * <data> is the pointer given to canvas_path_iterate()
545  * <ce> is a pointer to the canvas-environment that provided <path> in its
546  * search-path (or NULL)
547  */
548 typedef int (*t_canvas_path_iterator)(const char *path, void *user_data);
549 /*
550  * iterate over all search-paths for <x> calling <fun> with the user-supplied
551  * <data>
552  * iteration stops once all paths are exhausted or calling <fun> returned 0.
553  */
555  void *user_data);
556 
557 /* ---- functions on canvasses as objects --------------------- */
558 
560  int *x1, int *y1, int *x2, int *y2);
561 EXTERN void canvas_visforscalars(t_canvas *x, t_glist *glist, int vis);
562 EXTERN int canvas_clicksub(t_canvas *x, int xpix, int ypix, int shift,
563  int alt, int dbl, int doit);
565 
569 
570 /* --------- functions on garrays (graphical arrays) -------------------- */
571 
573 
574 /* -------------------- arrays --------------------- */
576  t_floatarg f, t_floatarg saveit);
577 EXTERN t_array *array_new(t_symbol *templatesym, t_gpointer *parent);
578 EXTERN void array_resize(t_array *x, int n);
579 EXTERN void array_free(t_array *x);
580 EXTERN void array_redraw(t_array *a, t_glist *glist);
581 EXTERN void array_resize_and_redraw(t_array *array, t_glist *glist, int n);
582 
583 /* --------------------- gpointers and stubs ---------------- */
585 EXTERN void gstub_cutoff(t_gstub *gs);
586 EXTERN void gpointer_setglist(t_gpointer *gp, t_glist *glist, t_scalar *x);
587 EXTERN void gpointer_setarray(t_gpointer *gp, t_array *array, t_word *w);
588 
589 /* --------------------- scalars ------------------------- */
590 EXTERN void word_init(t_word *wp, t_template *tmpl, t_gpointer *gp);
591 EXTERN void word_restore(t_word *wp, t_template *tmpl,
592  int argc, t_atom *argv);
594  t_symbol *templatesym);
595 EXTERN void word_free(t_word *wp, t_template *tmpl);
596 EXTERN void scalar_getbasexy(t_scalar *x, t_float *basex, t_float *basey);
597 EXTERN void scalar_redraw(t_scalar *x, t_glist *glist);
598 EXTERN void canvas_writescalar(t_symbol *templatesym, t_word *w, t_binbuf *b,
599  int amarrayelement);
600 EXTERN int canvas_readscalar(t_glist *x, int natoms, t_atom *vec,
601  int *p_nextmsg, int selectit);
602 
603 /* ------helper routines for "garrays" and "plots" -------------- */
605  char *elem, int xonset, int yonset, int wonset, int indx,
606  t_float basex, t_float basey, t_float xinc,
607  t_fielddesc *xfielddesc, t_fielddesc *yfielddesc, t_fielddesc *wfielddesc,
608  t_float *xp, t_float *yp, t_float *wp);
609 
610 EXTERN int array_getfields(t_symbol *elemtemplatesym,
611  t_canvas **elemtemplatecanvasp,
612  t_template **elemtemplatep, int *elemsizep,
613  t_fielddesc *xfielddesc, t_fielddesc *yfielddesc, t_fielddesc *wfielddesc,
614  int *xonsetp, int *yonsetp, int *wonsetp);
615 
616 /* --------------------- templates ------------------------- */
617 EXTERN t_template *template_new(t_symbol *sym, int argc, t_atom *argv);
620 EXTERN int template_find_field(t_template *x, t_symbol *name, int *p_onset,
621  int *p_type, t_symbol **p_arraytype);
623  int loud);
624 EXTERN void template_setfloat(t_template *x, t_symbol *fieldname, t_word *wp,
625  t_float f, int loud);
627  t_word *wp, int loud);
628 EXTERN void template_setsymbol(t_template *x, t_symbol *fieldname,
629  t_word *wp, t_symbol *s, int loud);
630 
635  t_symbol *s, int argc, t_atom *argv);
636 
638  t_word *wp, int loud);
639 EXTERN void template_setfloat(t_template *x, t_symbol *fieldname,
640  t_word *wp, t_float f, int loud);
642  t_word *wp, int loud);
643 EXTERN void template_setsymbol(t_template *x, t_symbol *fieldname,
644  t_word *wp, t_symbol *s, int loud);
646  t_word *wp, int loud);
648  t_word *wp, t_float pix, int loud);
651 
652 
653 /* ----------------------- guiconnects, g_guiconnect.c --------- */
655 EXTERN void guiconnect_notarget(t_guiconnect *x, double timedelay);
656 
657 /* ------------- IEMGUI routines used in other g_ files ---------------- */
660 
661 /*------------- g_clone.c ------------- */
662 extern t_class *clone_class;
663 
664 /* ----- CEAMMC grid ----- */
666 
667 #if defined(_LANGUAGE_C_PLUS_PLUS) || defined(__cplusplus)
668 }
669 #endif
670 
671 #endif // G_CANVAS_H
EXTERN void canvas_unsetcurrent(t_canvas *x)
EXTERN void glist_add(t_glist *x, t_gobj *g)
t_symbol * gl_name
Definition: g_canvas.h:179
EXTERN int glist_fontwidth(t_glist *x)
EXTERN int gobj_shouldvis(t_gobj *x, struct _glist *glist)
EXTERN int text_xcoord(t_text *x, t_glist *glist)
EXTERN void array_resize_and_redraw(t_array *array, t_glist *glist, int n)
#define t_outconnect
Definition: m_pd.h:201
EXTERN t_guiconnect * guiconnect_new(t_pd *who, t_symbol *sym)
EXTERN void canvas_rename(t_canvas *x, t_symbol *s, t_symbol *dir)
t_selection * e_updlist
Definition: g_canvas.h:92
void(* t_glistkeyfn)(void *z, t_floatarg key)
Definition: g_canvas.h:62
struct _glist * gl_owner
Definition: g_canvas.h:157
unsigned int gl_hidetext
Definition: g_canvas.h:193
EXTERN void glist_init(t_glist *x)
unsigned int e_onmotion
Definition: g_canvas.h:110
Definition: g_canvas.h:131
unsigned int upd_queued
Definition: g_canvas.h:57
EXTERN void canvas_destroy_editor(t_glist *x)
EXTERN void canvas_rminlet(t_canvas *x, t_inlet *ip)
EXTERN int glist_fontheight(t_glist *x)
t_object * tr_ob2
Definition: g_canvas.h:244
EXTERN t_template * template_new(t_symbol *sym, int argc, t_atom *argv)
EXTERN void canvas_dirty(t_canvas *x, t_floatarg n)
unsigned int gl_isgraph
Definition: g_canvas.h:192
#define t_array
Definition: m_pd.h:118
EXTERN void canvas_fixlinesfor(t_canvas *x, t_text *text)
int e_ywas
Definition: g_canvas.h:104
int tr_x21
Definition: g_canvas.h:250
EXTERN void gobj_displace(t_gobj *x, t_glist *owner, int dx, int dy)
EXTERN int gobj_click(t_gobj *x, struct _glist *glist, int xpix, int ypix, int shift, int alt, int dbl, int doit)
EXTERN void rtext_gettext(t_rtext *x, char **buf, int *bufsize)
void(* t_parentactivatefn)(t_gobj *x, struct _glist *glist, t_word *data, t_template *tmpl, t_float basex, t_float basey, int state)
Definition: g_canvas.h:312
t_parentselectfn w_parentselectfn
Definition: g_canvas.h:329
void(* t_parentvisfn)(t_gobj *x, struct _glist *glist, t_word *data, t_template *tmpl, t_float basex, t_float basey, int flag)
Definition: g_canvas.h:316
EXTERN int rtext_width(t_rtext *x)
struct _updateheader * upd_next
Definition: g_canvas.h:55
int gl_pixwidth
Definition: g_canvas.h:158
EXTERN t_canvas * canvas_new(void *dummy, t_symbol *sel, int argc, t_atom *argv)
t_canvas * canvas_whichfind
struct _selection t_selection
EXTERN void canvas_writescalar(t_symbol *templatesym, t_word *w, t_binbuf *b, int amarrayelement)
EXTERN void array_getcoordinate(t_glist *glist, char *elem, int xonset, int yonset, int wonset, int indx, t_float basex, t_float basey, t_float xinc, t_fielddesc *xfielddesc, t_fielddesc *yfielddesc, t_fielddesc *wfielddesc, t_float *xp, t_float *yp, t_float *wp)
struct _gtemplate * t_list
Definition: g_canvas.h:220
EXTERN void gobj_getrect(t_gobj *x, t_glist *owner, int *x1, int *y1, int *x2, int *y2)
t_class * vinlet_class
unsigned int gl_havewindow
Definition: g_canvas.h:184
EXTERN void array_resize(t_array *x, int n)
EXTERN int template_find_field(t_template *x, t_symbol *name, int *p_onset, int *p_type, t_symbol **p_arraytype)
t_parentgetrectfn w_parentgetrectfn
Definition: g_canvas.h:327
EXTERN t_float glist_dpixtodx(t_glist *x, t_float dxpix)
Definition: m_pd.h:140
EXTERN void array_redraw(t_array *a, t_glist *glist)
int gl_pixheight
Definition: g_canvas.h:159
void(* t_displacefn)(t_gobj *x, struct _glist *glist, int dx, int dy)
Definition: g_canvas.h:265
t_outconnect * tr_nextoc
Definition: g_canvas.h:252
t_gstub * a_stub
Definition: g_canvas.h:234
t_outconnect * e_selectline_tag
Definition: g_canvas.h:109
EXTERN void template_free(t_template *x)
EXTERN void glist_select(t_glist *x, t_gobj *y)
#define EXTERN_STRUCT
Definition: m_pd.h:50
EXTERN t_template * template_findbyname(t_symbol *s)
int e_selectline_inno
Definition: g_canvas.h:108
EXTERN t_float glist_ytopixels(t_glist *x, t_float yval)
EXTERN void gobj_save(t_gobj *x, t_binbuf *b)
EXTERN int template_match(t_template *x1, t_template *x2)
unsigned int gl_willvis
Definition: g_canvas.h:188
t_float k_point
Definition: g_canvas.h:141
EXTERN int canvas_isconnected(t_canvas *x, t_text *ob1, int n1, t_text *ob2, int n2)
EXTERN int array_getfields(t_symbol *elemtemplatesym, t_canvas **elemtemplatecanvasp, t_template **elemtemplatep, int *elemsizep, t_fielddesc *xfielddesc, t_fielddesc *yfielddesc, t_fielddesc *wfielddesc, int *xonsetp, int *yonsetp, int *wonsetp)
int e_selectline_index1
Definition: g_canvas.h:105
t_gpointer a_gp
Definition: g_canvas.h:233
EXTERN_STRUCT _rtext
Definition: g_canvas.h:64
EXTERN_STRUCT _guiconnect
Definition: g_canvas.h:70
Definition: g_canvas.h:325
Definition: m_pd.h:179
EXTERN void canvas_redraw(t_canvas *x)
t_clickfn w_clickfn
Definition: g_canvas.h:287
#define t_inlet
Definition: m_pd.h:192
Definition: m_pd.h:209
t_garray * av_garray
Definition: g_canvas.h:134
EXTERN t_array * array_new(t_symbol *templatesym, t_gpointer *parent)
EXTERN void canvas_redrawallfortemplatecanvas(t_canvas *x, int action)
EXTERN t_rtext * rtext_new(t_glist *glist, t_text *who)
struct _gstub * gl_stub
Definition: g_canvas.h:155
unsigned int gl_isclone
Definition: g_canvas.h:195
EXTERN void canvas_deletelinesfor(t_canvas *x, t_text *text)
t_canvas * tr_x
Definition: g_canvas.h:240
EXTERN t_symbol * canvas_realizedollar(t_canvas *x, t_symbol *s)
EXTERN void glist_eraseiofor(t_glist *glist, t_object *ob, char *tag)
EXTERN int canvas_hitbox(t_canvas *x, t_gobj *y, int xpos, int ypos, int *x1p, int *y1p, int *x2p, int *y2p)
EXTERN void canvas_stowconnections(t_canvas *x)
EXTERN void gpointer_setglist(t_gpointer *gp, t_glist *glist, t_scalar *x)
EXTERN int canvas_isabstraction(t_canvas *x)
int gl_nxlabels
Definition: g_canvas.h:171
t_object gl_obj
Definition: g_canvas.h:153
int tr_y11
Definition: g_canvas.h:249
EXTERN void canvas_setgraph(t_glist *x, int flag, int nogoprect)
EXTERN t_rtext * rtext_remove(t_rtext *first, t_rtext *x)
EXTERN void rtext_retext(t_rtext *x)
Definition: g_canvas.h:53
EXTERN void template_setsymbol(t_template *x, t_symbol *fieldname, t_word *wp, t_symbol *s, int loud)
EXTERN void rtext_draw(t_rtext *x)
int e_xwas
Definition: g_canvas.h:103
EXTERN void glist_noselect(t_glist *x)
t_float gl_xlabely
Definition: g_canvas.h:173
#define EXTERN
Definition: m_pd.h:39
int tr_ly2
Definition: g_canvas.h:251
EXTERN void canvas_rmoutlet(t_canvas *x, t_outlet *op)
int tr_y22
Definition: g_canvas.h:250
t_getrectfn w_getrectfn
Definition: g_canvas.h:281
void(* t_glistmotionfn)(void *z, t_floatarg dx, t_floatarg dy)
Definition: g_canvas.h:61
EXTERN void canvas_visforscalars(t_canvas *x, t_glist *glist, int vis)
t_symbol * ds_arraytemplate
Definition: g_canvas.h:214
int a_elemsize
Definition: g_canvas.h:229
int e_selectline_outno
Definition: g_canvas.h:106
#define t_canvas
Definition: m_pd.h:205
EXTERN t_glist * glist_reloadingabstraction
Definition: g_canvas.h:519
EXTERN t_int * canvas_recurapply(t_canvas *x, t_canvasapply *fn, t_int x1, t_int x2, t_int x3)
void(* t_visfn)(t_gobj *x, struct _glist *glist, int flag)
Definition: g_canvas.h:273
char * a_vec
Definition: g_canvas.h:230
EXTERN void rtext_mouse(t_rtext *x, int xval, int yval, int flag)
EXTERN void canvas_disconnect(t_canvas *x, t_float index1, t_float outno, t_float index2, t_float inno)
unsigned int gl_edit
Definition: g_canvas.h:189
int gl_xmargin
Definition: g_canvas.h:168
EXTERN void canvas_initbang(t_canvas *x)
EXTERN int canvas_clicksub(t_canvas *x, int xpix, int ypix, int shift, int alt, int dbl, int doit)
EXTERN t_outlet * canvas_addoutlet(t_canvas *x, t_pd *who, t_symbol *sym)
EXTERN void glist_glist(t_glist *g, t_symbol *s, int argc, t_atom *argv)
EXTERN void gobj_vis(t_gobj *x, t_glist *glist, int flag)
EXTERN void template_notify(t_template *tmpl, t_symbol *s, int argc, t_atom *argv)
Definition: g_canvas.h:139
EXTERN_STRUCT _gtemplate
Definition: g_canvas.h:67
struct _arrayvis t_arrayvis
int(* t_canvas_path_iterator)(const char *path, void *user_data)
Definition: g_canvas.h:548
void(* t_deletefn)(t_gobj *x, struct _glist *glist)
Definition: g_canvas.h:271
int tr_ly1
Definition: g_canvas.h:251
EXTERN_STRUCT _canvasenvironment
Definition: g_canvas.h:76
EXTERN t_garray * graph_array(t_glist *gl, t_symbol *s, t_symbol *tmpl, t_floatarg f, t_floatarg saveit)
void(* t_getrectfn)(t_gobj *x, struct _glist *glist, int *x1, int *y1, int *x2, int *y2)
Definition: g_canvas.h:262
EXTERN t_symbol * canvas_makebindsym(t_symbol *s)
EXTERN t_glist * glist_findgraph(t_glist *x)
EXTERN int canvas_getindex(t_canvas *x, t_gobj *y)
t_parentclickfn w_parentclickfn
Definition: g_canvas.h:332
int gl_screeny2
Definition: g_canvas.h:167
struct _glist * e_glist
Definition: g_canvas.h:102
t_outlet * tr_outlet
Definition: g_canvas.h:245
t_editor * gl_editor
Definition: g_canvas.h:178
EXTERN void canvas_setcursor(t_glist *x, unsigned int cursornum)
t_float gl_ylabelx
Definition: g_canvas.h:177
EXTERN void canvas_noundo(t_canvas *x)
EXTERN void canvas_resortinlets(t_canvas *x)
unsigned int gl_dirty
Definition: g_canvas.h:186
EXTERN_STRUCT _fielddesc
Definition: g_canvas.h:79
EXTERN void gstub_cutoff(t_gstub *gs)
t_parentactivatefn w_parentactivatefn
Definition: g_canvas.h:330
EXTERN t_glist * glist_addglist(t_glist *g, t_symbol *sym, t_float x1, t_float y1, t_float x2, t_float y2, t_float px1, t_float py1, t_float px2, t_float py2)
EXTERN t_inlet * canvas_addinlet(t_canvas *x, t_pd *who, t_symbol *sym)
int t_n
Definition: g_canvas.h:222
EXTERN int text_ypix(t_text *x, t_glist *glist)
EXTERN void gobj_activate(t_gobj *x, t_glist *owner, int state)
EXTERN char * rtext_gettag(t_rtext *x)
t_pd t_pdobj
Definition: g_canvas.h:219
EXTERN int canvas_setdeleting(t_canvas *x, int flag)
t_symbol ** gl_ylabel
Definition: g_canvas.h:176
t_canvasenvironment * gl_env
Definition: g_canvas.h:183
unsigned int gl_isdeleting
Definition: g_canvas.h:190
EXTERN void template_setfloat(t_template *x, t_symbol *fieldname, t_word *wp, t_float f, int loud)
Definition: g_canvas.h:151
t_glistmotionfn e_motionfn
Definition: g_canvas.h:97
Definition: g_canvas.h:226
void(* t_selectfn)(t_gobj *x, struct _glist *glist, int state)
Definition: g_canvas.h:267
t_rtext * e_textedfor
Definition: g_canvas.h:95
EXTERN t_float glist_dpixtody(t_glist *x, t_float dypix)
void(* t_parentgetrectfn)(t_gobj *x, struct _glist *glist, t_word *data, t_template *tmpl, t_float basex, t_float basey, int *x1, int *y1, int *x2, int *y2)
Definition: g_canvas.h:300
t_displacefn w_displacefn
Definition: g_canvas.h:282
int ds_type
Definition: g_canvas.h:212
t_symbol * ds_name
Definition: g_canvas.h:213
EXTERN void rtext_displace(t_rtext *x, int dx, int dy)
EXTERN int glist_getzoom(t_glist *x)
EXTERN void word_init(t_word *wp, t_template *tmpl, t_gpointer *gp)
EXTERN t_glist * canvas_getglistonsuper(void)
int tr_lx1
Definition: g_canvas.h:251
unsigned int e_textdirty
Definition: g_canvas.h:112
EXTERN t_canvas * canvas_getcurrent(void)
int gl_zoom
Definition: g_canvas.h:181
EXTERN t_scalar * scalar_new(t_glist *owner, t_symbol *templatesym)
EXTERN void guiconnect_notarget(t_guiconnect *x, double timedelay)
t_parentdisplacefn w_parentdisplacefn
Definition: g_canvas.h:328
EXTERN void canvas_free(t_canvas *x)
EXTERN void rtext_getseltext(t_rtext *x, char **buf, int *bufsize)
t_deletefn w_deletefn
Definition: g_canvas.h:285
PD_FLOATTYPE t_floatarg
Definition: m_pd.h:108
EXTERN void linetraverser_start(t_linetraverser *t, t_canvas *x)
EXTERN t_glist * pd_checkglist(t_pd *x)
int(* t_clickfn)(t_gobj *x, struct _glist *glist, int xpix, int ypix, int shift, int alt, int dbl, int doit)
Definition: g_canvas.h:275
EXTERN t_gstub * gstub_new(t_glist *gl, t_array *a)
void(* t_parentselectfn)(t_gobj *x, struct _glist *glist, t_word *data, t_template *tmpl, t_float basex, t_float basey, int state)
Definition: g_canvas.h:308
unsigned int gl_private
Definition: g_canvas.h:194
EXTERN void text_setto(t_text *x, t_glist *glist, char *buf, int bufsize)
EXTERN int canvas_istable(t_canvas *x)
EXTERN_STRUCT _tscalar
Definition: g_canvas.h:73
t_inlet * tr_inlet
Definition: g_canvas.h:246
EXTERN void canvas_updatewindowlist(void)
t_dataslot * t_vec
Definition: g_canvas.h:223
unsigned int gl_goprect
Definition: g_canvas.h:191
t_clock * e_clock
Definition: g_canvas.h:114
#define t_clock
Definition: m_pd.h:198
EXTERN void rtext_select(t_rtext *x, int state)
EXTERN t_canvasenvironment * canvas_getenv(t_canvas *x)
EXTERN void text_drawborder(t_text *x, t_glist *glist, char *tag, int width, int height, int firsttime)
EXTERN void canvas_redrawallfortemplate(t_template *tmpl, int action)
EXTERN int text_xpix(t_text *x, t_glist *glist)
int gl_nylabels
Definition: g_canvas.h:175
#define t_gtemplate
Definition: g_canvas.h:68
struct _dataslot t_dataslot
EXTERN int rtext_height(t_rtext *x)
struct _editor t_editor
t_visfn w_visfn
Definition: g_canvas.h:286
void canvas_deletelinesforio(t_canvas *x, t_text *text, t_inlet *inp, t_outlet *outp)
#define t_binbuf
Definition: m_pd.h:195
EXTERN void canvas_fattenforscalars(t_canvas *x, int *x1, int *y1, int *x2, int *y2)
int e_ynew
Definition: g_canvas.h:116
EXTERN t_outconnect * linetraverser_next(t_linetraverser *t)
t_updateheader av_upd
Definition: g_canvas.h:133
EXTERN t_symbol * iemgui_raute2dollar(t_symbol *s)
int gl_font
Definition: g_canvas.h:180
EXTERN void linetraverser_skipobject(t_linetraverser *t)
EXTERN void glist_deselect(t_glist *x, t_gobj *y)
EXTERN t_symbol * template_getsymbol(t_template *x, t_symbol *fieldname, t_word *wp, int loud)
int tr_x12
Definition: g_canvas.h:249
EXTERN void gobj_properties(t_gobj *x, struct _glist *glist)
struct _linetraverser t_linetraverser
EXTERN void canvas_zapallfortemplate(t_canvas *tmpl)
EXTERN void gobj_delete(t_gobj *x, t_glist *owner)
EXTERN void array_free(t_array *x)
#define t_class
Definition: m_pd.h:186
int tr_outno
Definition: g_canvas.h:243
t_selection * e_selection
Definition: g_canvas.h:94
int glist_amreloadingabstractions
int tr_nextoutno
Definition: g_canvas.h:253
void(* t_parentdisplacefn)(t_gobj *x, struct _glist *glist, t_word *data, t_template *tmpl, t_float basex, t_float basey, int dx, int dy)
Definition: g_canvas.h:304
EXTERN int canvas_showtext(t_canvas *x)
EXTERN void scalar_getbasexy(t_scalar *x, t_float *basex, t_float *basey)
EXTERN void glist_sort(t_glist *canvas)
EXTERN void canvas_vistext(t_canvas *x, t_text *y)
EXTERN t_float fielddesc_cvtfromcoord(t_fielddesc *f, t_float coord)
t_class * clone_class
EXTERN void canvas_setcurrent(t_canvas *x)
Definition: g_canvas.h:217
EXTERN void fielddesc_setcoord(t_fielddesc *f, t_template *tmpl, t_word *wp, t_float pix, int loud)
int gl_screenx2
Definition: g_canvas.h:166
#define t_rtext
Definition: g_canvas.h:65
EXTERN t_template * gtemplate_get(t_gtemplate *x)
PD_FLOATTYPE t_float
Definition: m_pd.h:107
EXTERN t_template * garray_template(t_garray *x)
#define t_canvasenvironment
Definition: g_canvas.h:77
int k_lperb
Definition: g_canvas.h:143
EXTERN t_canvas * canvas_getrootfor(t_canvas *x)
#define t_guiconnect
Definition: g_canvas.h:71
EXTERN t_float fielddesc_cvttocoord(t_fielddesc *f, t_float val)
EXTERN void glist_retext(t_glist *x, t_text *y)
#define t_outlet
Definition: m_pd.h:189
t_class * voutlet_class
Definition: m_pd.h:215
t_object * tr_ob
Definition: g_canvas.h:241
t_gobj * e_grab
Definition: g_canvas.h:96
unsigned int gl_grid
Definition: g_canvas.h:197
int tr_x22
Definition: g_canvas.h:250
t_binbuf * e_deleted
Definition: g_canvas.h:100
EXTERN void canvas_closebang(t_canvas *x)
t_float gl_x1
Definition: g_canvas.h:160
EXTERN void canvas_selectinrect(t_canvas *x, int lox, int loy, int hix, int hiy)
EXTERN t_float glist_pixelstoy(t_glist *x, t_float ypix)
int glist_valid
EXTERN void glist_mergefile(t_glist *x, t_symbol *filename, t_symbol *format)
unsigned int upd_array
Definition: g_canvas.h:56
t_guiconnect * e_guiconnect
Definition: g_canvas.h:101
EXTERN t_float fielddesc_getcoord(t_fielddesc *f, t_template *tmpl, t_word *wp, int loud)
t_glistkeyfn e_keyfn
Definition: g_canvas.h:98
EXTERN int canvas_readscalar(t_glist *x, int natoms, t_atom *vec, int *p_nextmsg, int selectit)
unsigned int e_selectedline
Definition: g_canvas.h:113
#define t_glist
Definition: m_pd.h:204
t_class * t_pd
Definition: m_pd.h:207
int tr_nout
Definition: g_canvas.h:242
int gl_screenx1
Definition: g_canvas.h:164
EXTERN void glist_drawiofor(t_glist *glist, t_object *ob, int firsttime, char *tag, int x1, int y1, int x2, int y2)
Definition: m_pd.h:110
EXTERN void canvas_vis(t_canvas *x, t_floatarg f)
struct _selection * sel_next
Definition: g_canvas.h:85
EXTERN void canvas_loadbang(t_canvas *x)
void(* t_activatefn)(t_gobj *x, struct _glist *glist, int state)
Definition: g_canvas.h:269
t_rtext * e_rtext
Definition: g_canvas.h:93
t_parentvisfn w_parentvisfn
Definition: g_canvas.h:331
int gl_ymargin
Definition: g_canvas.h:169
t_float gl_y1
Definition: g_canvas.h:161
struct _tick t_tick
EXTERN t_binbuf * glist_writetobinbuf(t_glist *x, int wholething)
int gl_valid
Definition: g_canvas.h:156
Definition: g_canvas.h:210
EXTERN void canvas_create_editor(t_glist *x)
Definition: m_pd.h:151
EXTERN void word_free(t_word *wp, t_template *tmpl)
EXTERN void glist_clear(t_glist *x)
EXTERN t_float template_getfloat(t_template *x, t_symbol *fieldname, t_word *wp, int loud)
EXTERN t_float glist_pixelstox(t_glist *x, t_float xpix)
Definition: g_canvas.h:279
Definition: m_pd.h:222
int tr_inno
Definition: g_canvas.h:248
int(* t_parentclickfn)(t_gobj *x, struct _glist *glist, t_word *data, t_template *tmpl, t_scalar *sc, t_array *ap, t_float basex, t_float basey, int xpix, int ypix, int shift, int alt, int dbl, int doit)
Definition: g_canvas.h:320
EXTERN int glist_isgraph(t_glist *x)
struct _glist * gl_next
Definition: g_canvas.h:182
#define t_fielddesc
Definition: g_canvas.h:80
EXTERN t_canvas * template_findcanvas(t_template *tmpl)
EXTERN void gobj_select(t_gobj *x, t_glist *owner, int state)
EXTERN void word_restore(t_word *wp, t_template *tmpl, int argc, t_atom *argv)
t_gobj * sel_what
Definition: g_canvas.h:84
EXTERN void glist_read(t_glist *x, t_symbol *filename, t_symbol *format)
EXTERN int glist_isselected(t_glist *x, t_gobj *y)
t_activatefn w_activatefn
Definition: g_canvas.h:284
t_selectfn w_selectfn
Definition: g_canvas.h:283
t_tick gl_ytick
Definition: g_canvas.h:174
EXTERN t_canvas * glist_getcanvas(t_glist *x)
EXTERN void canvas_setusedastemplate(t_canvas *x)
EXTERN void canvas_connect(t_canvas *x, t_floatarg fwhoout, t_floatarg foutno, t_floatarg fwhoin, t_floatarg finno)
EXTERN int glist_istoplevel(t_glist *x)
EXTERN void rtext_erase(t_rtext *x)
t_symbol ** gl_xlabel
Definition: g_canvas.h:172
unsigned int gl_mapped
Definition: g_canvas.h:185
Definition: m_pd.h:129
Definition: g_canvas.h:82
EXTERN void rtext_free(t_rtext *x)
EXTERN t_float glist_xtopixels(t_glist *x, t_float xval)
EXTERN void glist_grab(t_glist *x, t_gobj *y, t_glistmotionfn motionfn, t_glistkeyfn keyfn, int xpos, int ypos)
t_updateheader e_upd
Definition: g_canvas.h:91
unsigned int e_lastmoved
Definition: g_canvas.h:111
int(* t_canvasapply)(t_canvas *x, t_int x1, t_int x2, t_int x3)
Definition: g_canvas.h:486
struct _updateheader t_updateheader
int e_selectline_index2
Definition: g_canvas.h:107
t_gobj * gl_list
Definition: g_canvas.h:154
int tr_lx2
Definition: g_canvas.h:251
EXTERN void canvas_editmode(t_canvas *x, t_floatarg state)
EXTERN void canvas_resortoutlets(t_canvas *x)
EXTERN void canvas_setundo(t_canvas *x, t_undofn undofn, void *buf, const char *name)
int a_n
Definition: g_canvas.h:228
EXTERN void glist_getnextxy(t_glist *gl, int *xval, int *yval)
EXTERN void text_eraseborder(t_text *x, t_glist *glist, char *tag)
t_binbuf * e_connectbuf
Definition: g_canvas.h:99
EXTERN void canvas_restoreconnections(t_canvas *x)
Definition: g_canvas.h:238
int tr_nin
Definition: g_canvas.h:247
EXTERN int canvas_path_iterate(t_canvas *x, t_canvas_path_iterator fun, void *user_data)
EXTERN void canvas_drawgrid(t_canvas *x)
EXTERN t_glist * glist_new(void)
int tr_y21
Definition: g_canvas.h:250
void(* t_undofn)(t_canvas *canvas, void *buf, int action)
Definition: g_canvas.h:521
struct _template t_template
int tr_x11
Definition: g_canvas.h:249
EXTERN void glist_delete(t_glist *x, t_gobj *y)
int tr_y12
Definition: g_canvas.h:249
EXTERN int glist_isvisible(t_glist *x)
EXTERN int glist_getfont(t_glist *x)
EXTERN int text_ycoord(t_text *x, t_glist *glist)
t_tick gl_xtick
Definition: g_canvas.h:170
PD_LONGINTTYPE t_int
Definition: m_pd.h:106
EXTERN t_symbol * iemgui_dollar2raute(t_symbol *s)
EXTERN void rtext_key(t_rtext *x, int n, t_symbol *s)
t_float gl_y2
Definition: g_canvas.h:163
EXTERN int canvas_getfont(t_canvas *x)
t_float k_inc
Definition: g_canvas.h:142
t_symbol * a_templatesym
Definition: g_canvas.h:231
EXTERN void scalar_redraw(t_scalar *x, t_glist *glist)
EXTERN void glist_arraydialog(t_glist *parent, t_symbol *name, t_floatarg size, t_floatarg saveit, t_floatarg newgraph)
#define t_garray
Definition: m_pd.h:674
unsigned int gl_loading
Definition: g_canvas.h:187
EXTERN void * subcanvas_new(t_symbol *s)
int a_valid
Definition: g_canvas.h:232
Definition: g_canvas.h:89
EXTERN void rtext_activate(t_rtext *x, int state)
EXTERN t_class * canvas_class
Definition: g_canvas.h:458
EXTERN void glist_redraw(t_glist *x)
t_symbol * t_sym
Definition: g_canvas.h:221
EXTERN void gpointer_setarray(t_gpointer *gp, t_array *array, t_word *w)
t_float gl_x2
Definition: g_canvas.h:162
int gl_screeny1
Definition: g_canvas.h:165
EXTERN void glist_selectall(t_glist *x)
EXTERN t_rtext * glist_findrtext(t_glist *gl, t_text *who)
int e_xnew
Definition: g_canvas.h:115