diff --git a/pd/src/g_canvas.c b/pd/src/g_canvas.c index d61c8e52d9d09ee21f9c5cb5b7b830de07c5d20b..82c9974405452351fc733a3ae9aa055d1499ce0f 100644 --- a/pd/src/g_canvas.c +++ b/pd/src/g_canvas.c @@ -352,7 +352,7 @@ t_canvas *canvas_new(void *dummy, t_symbol *sel, int argc, t_atom *argv) int font = (owner ? owner->gl_font : sys_defaultfont); glist_init(x); - x->gl_magic_glass = magicGlass_new(x); + //x->gl_magic_glass = magicGlass_new(x); x->gl_obj.te_type = T_OBJECT; if (!owner) canvas_addtolist(x); @@ -461,9 +461,6 @@ t_canvas *canvas_new(void *dummy, t_symbol *sel, int argc, t_atom *argv) x->move_offset_y = 0; x->move_vis = 0; - x->canvas_cnct_inlet_tag[0] = 0; - x->canvas_cnct_outlet_tag[0] = 0; - x->u_queue = canvas_undo_init(x); return(x); @@ -889,12 +886,6 @@ void canvas_free(t_canvas *x) t_gobj *y; int dspstate = canvas_suspend_dsp(); - if (x->gl_magic_glass) { - //magicGlass_free(x->gl_magic_glass); - pd_free(&x->gl_magic_glass->x_obj.te_g.g_pd); - x->gl_magic_glass = NULL; - } - //canvas_noundo(x); canvas_undo_free(x); @@ -1385,10 +1376,12 @@ static void canvas_dodsp(t_canvas *x, int toplevel, t_signal **sp) /* find all the "dsp" boxes and add them to the graph */ - ob = &x->gl_magic_glass->x_obj; - if (ob && magicGlass_bound(x->gl_magic_glass)) { - //fprintf(stderr,"adding cord inspector to dsp %d\n", magicGlass_bound(x->gl_magic_glass)); - ugen_add(dc, ob); // this t_canvas could be an array, hence no gl_magic_glass + if (x->gl_editor) { + ob = &x->gl_editor->gl_magic_glass->x_obj; + if (ob && magicGlass_bound(x->gl_editor->gl_magic_glass)) { + //fprintf(stderr,"adding cord inspector to dsp %d\n", magicGlass_bound(x->gl_magic_glass)); + ugen_add(dc, ob); // this t_canvas could be an array, hence no gl_magic_glass + } } for (y = x->gl_list; y; y = y->g_next) diff --git a/pd/src/g_canvas.h b/pd/src/g_canvas.h index 59eb0d5bec9ad105b1fd3db869c6814ac7da66fa..66643201e1ced137946f97a2f703fc6772398db0 100644 --- a/pd/src/g_canvas.h +++ b/pd/src/g_canvas.h @@ -121,6 +121,9 @@ typedef struct _editor unsigned int e_lastmoved: 1; /* one if mouse has moved since click */ unsigned int e_textdirty: 1; /* one if e_textedfor has changed */ unsigned int e_selectedline: 1; /* one if a line is selected */ + t_magicGlass *gl_magic_glass; /* magic glass object */ + char canvas_cnct_inlet_tag[4096]; /* tags for currently highlighted nlets */ + char canvas_cnct_outlet_tag[4096]; } t_editor; #define MA_NONE 0 /* e_onmotion: do nothing on mouse motion */ @@ -202,30 +205,21 @@ struct _glist unsigned int gl_isgraph:1; /* show as graph on parent */ unsigned int gl_hidetext:1; /* hide object-name + args when doing graph on parent */ unsigned int gl_gop_initialized:1; /* used for tagged moving of gop-ed objects to avoid redundant reinit */ - t_magicGlass *gl_magic_glass; /* magic glass object */ - + //global preset array pointer + t_preset_hub *gl_phub; + //infinite undo goodies (have to stay here rather than the editor to prevent its obliteration when editor is deleted) + t_undo_action *u_queue; + t_undo_action *u_last; //dpsaha@vt.edu for the gop dynamic resizing t_pd *x_handle; int scale_offset_x; int scale_offset_y; - int scale_vis; - + int scale_vis; //dpsaha@vt.edu for the move handle t_pd *x_mhandle; int move_offset_x; int move_offset_y; int move_vis; - - //infinite undo goodies - t_undo_action *u_queue; - t_undo_action *u_last; - - //global preset array pointer - t_preset_hub *gl_phub; - - //tags for currently highlighted nlets - char canvas_cnct_inlet_tag[4096]; - char canvas_cnct_outlet_tag[4096]; }; #define gl_gobj gl_obj.te_g diff --git a/pd/src/g_editor.c b/pd/src/g_editor.c index 7a223e9855ca56ac74411aa0481d992f6b90875f..a8318cec63428c72648163464a8905a653dc66f6 100644 --- a/pd/src/g_editor.c +++ b/pd/src/g_editor.c @@ -240,34 +240,34 @@ int gobj_click(t_gobj *x, struct _glist *glist, void canvas_check_nlet_highlights(t_glist *x) { - if (x->canvas_cnct_inlet_tag[0] != 0) + if (x->gl_editor->canvas_cnct_inlet_tag[0] != 0) { sys_vgui(".x%x.c itemconfigure %s -outline %s -fill %s -width 1\n", - x, x->canvas_cnct_inlet_tag, + x, x->gl_editor->canvas_cnct_inlet_tag, (last_inlet_filter ? "black" : (inlet_issignal ? "$signal_cord" : "$msg_cord")), (inlet_issignal ? "$signal_nlet" : "$msg_nlet")); if (objtooltip) { objtooltip = 0; sys_vgui("pdtk_canvas_leaveitem .x%x.c;\n", x); } - x->canvas_cnct_inlet_tag[0] = 0; + x->gl_editor->canvas_cnct_inlet_tag[0] = 0; //if (x->gl_editor->e_onmotion == MA_CONNECT) { x->gl_editor->e_onmotion = MA_NONE; canvas_setcursor(x, CURSOR_EDITMODE_NOTHING); //} } - if (x->canvas_cnct_outlet_tag[0] != 0 && x->gl_editor->e_onmotion != MA_CONNECT) + if (x->gl_editor->canvas_cnct_outlet_tag[0] != 0 && x->gl_editor->e_onmotion != MA_CONNECT) { sys_vgui(".x%x.c itemconfigure %s -outline %s -fill %s -width 1\n", - x, x->canvas_cnct_outlet_tag, + x, x->gl_editor->canvas_cnct_outlet_tag, (last_outlet_filter ? "black" : (outlet_issignal ? "$signal_cord" : "$msg_cord")), (outlet_issignal ? "$signal_nlet" : "$msg_nlet")); if (objtooltip) { objtooltip = 0; sys_vgui("pdtk_canvas_leaveitem .x%x.c;\n", x); } - x->canvas_cnct_outlet_tag[0] = 0; + x->gl_editor->canvas_cnct_outlet_tag[0] = 0; //if (x->gl_editor->e_onmotion == MA_CONNECT) { x->gl_editor->e_onmotion = MA_NONE; canvas_setcursor(x, CURSOR_EDITMODE_NOTHING); @@ -693,9 +693,9 @@ void canvas_disconnect(t_canvas *x, { sys_vgui(".x%lx.c delete l%lx\n", x, oc); // jsarlo - if(x->gl_magic_glass) { - magicGlass_unbind(x->gl_magic_glass); - magicGlass_hide(x->gl_magic_glass); + if(x->gl_editor && x->gl_editor->gl_magic_glass) { + magicGlass_unbind(x->gl_editor->gl_magic_glass); + magicGlass_hide(x->gl_editor->gl_magic_glass); } // end jsarlo obj_disconnect(t.tr_ob, t.tr_outno, t.tr_ob2, t.tr_inno); @@ -2022,6 +2022,9 @@ static t_editor *editor_new(t_glist *owner) x->e_glist = owner; sprintf(buf, ".x%lx", (t_int)owner); x->e_guiconnect = guiconnect_new(&owner->gl_pd, gensym(buf)); + x->gl_magic_glass = magicGlass_new(owner); + x->canvas_cnct_inlet_tag[0] = 0; + x->canvas_cnct_outlet_tag[0] = 0; return (x); } @@ -2031,6 +2034,13 @@ static void editor_free(t_editor *x, t_glist *y) guiconnect_notarget(x->e_guiconnect, 1000); binbuf_free(x->e_connectbuf); binbuf_free(x->e_deleted); + + if (x->gl_magic_glass) { + //magicGlass_free(x->gl_magic_glass); + pd_free(&x->gl_magic_glass->x_obj.te_g.g_pd); + //x->gl_magic_glass = NULL; + } + freebytes((void *)x, sizeof(*x)); } @@ -2727,7 +2737,7 @@ void canvas_doclick(t_canvas *x, int xpos, int ypos, int which, ob = pd_checkobject(&y->g_pd); if (rightclick) canvas_rightclick(x, xpos, ypos, y); - else if (shiftmod && x->canvas_cnct_outlet_tag[0] == 0) + else if (shiftmod && x->gl_editor->canvas_cnct_outlet_tag[0] == 0) { //selection (only if we are not hovering above an outlet) if (doit) @@ -2790,10 +2800,10 @@ void canvas_doclick(t_canvas *x, int xpos, int ypos, int which, { t_rtext *yr = glist_findrtext(x, (t_text *)&ob->ob_g); - if (x->canvas_cnct_outlet_tag[0] != 0) + if (x->gl_editor->canvas_cnct_outlet_tag[0] != 0) { sys_vgui(".x%x.c itemconfigure %s -outline %s -fill %s -width 1\n", - x, x->canvas_cnct_outlet_tag, + x, x->gl_editor->canvas_cnct_outlet_tag, (last_outlet_filter ? "black" : (outlet_issignal ? "$signal_cord" : "$msg_cord")), (outlet_issignal ? "$signal_nlet" : "$msg_nlet")); } @@ -2801,27 +2811,27 @@ void canvas_doclick(t_canvas *x, int xpos, int ypos, int which, { last_outlet_filter = gobj_filter_highlight_behavior(yr); //fprintf(stderr,"last_outlet_filter == %d\n", last_outlet_filter); - sprintf(x->canvas_cnct_outlet_tag, + sprintf(x->gl_editor->canvas_cnct_outlet_tag, "%so%d", rtext_gettag(yr), closest); sys_vgui(".x%x.c itemconfigure %s -outline $select_nlet_color -width $highlight_width\n", x, - x->canvas_cnct_outlet_tag); + x->gl_editor->canvas_cnct_outlet_tag); //sys_vgui(".x%x.c raise %s\n", // x, - // x->canvas_cnct_outlet_tag); + // x->gl_editor->canvas_cnct_outlet_tag); outlet_issignal = obj_issignaloutlet(ob,closest); if (tooltips) { objtooltip = 1; - sys_vgui("pdtk_canvas_enteritem .x%x.c %d %d %s -1\n;", x, xpos, ypos, x->canvas_cnct_outlet_tag); + sys_vgui("pdtk_canvas_enteritem .x%x.c %d %d %s -1\n;", x, xpos, ypos, x->gl_editor->canvas_cnct_outlet_tag); } } // jsarlo - if(x->gl_magic_glass) { - magicGlass_unbind(x->gl_magic_glass); - magicGlass_hide(x->gl_magic_glass); + if(x->gl_editor && x->gl_editor->gl_magic_glass) { + magicGlass_unbind(x->gl_editor->gl_magic_glass); + magicGlass_hide(x->gl_editor->gl_magic_glass); } // end jsarlo canvas_setcursor(x, CURSOR_EDITMODE_CONNECT); @@ -2847,10 +2857,10 @@ void canvas_doclick(t_canvas *x, int xpos, int ypos, int which, { t_rtext *yr = glist_findrtext(x, (t_text *)&ob->ob_g); - if (x->canvas_cnct_inlet_tag[0] != 0) + if (x->gl_editor->canvas_cnct_inlet_tag[0] != 0) { sys_vgui(".x%x.c itemconfigure %s -outline %s -fill %s -width 1\n", - x, x->canvas_cnct_inlet_tag, + x, x->gl_editor->canvas_cnct_inlet_tag, (last_inlet_filter ? "black" : (inlet_issignal ? "$signal_cord" : "$msg_cord")), (inlet_issignal ? "$signal_nlet" : "$msg_nlet")); } @@ -2859,21 +2869,21 @@ void canvas_doclick(t_canvas *x, int xpos, int ypos, int which, { last_inlet_filter = gobj_filter_highlight_behavior(yr); //fprintf(stderr,"last_inlet_filter == %d\n", last_inlet_filter); - sprintf(x->canvas_cnct_inlet_tag, + sprintf(x->gl_editor->canvas_cnct_inlet_tag, "%si%d", rtext_gettag(yr), closest); sys_vgui(".x%x.c itemconfigure %s -width $highlight_width\n", x, - x->canvas_cnct_inlet_tag); + x->gl_editor->canvas_cnct_inlet_tag); //sys_vgui(".x%x.c raise %s\n", // x, - // x->canvas_cnct_inlet_tag); + // x->gl_editor->canvas_cnct_inlet_tag); inlet_issignal = obj_issignalinlet(ob,closest); if (tooltips) { objtooltip = 1; - sys_vgui("pdtk_canvas_enteritem .x%x.c %d %d %s -1\n;", x, xpos, ypos, x->canvas_cnct_inlet_tag); + sys_vgui("pdtk_canvas_enteritem .x%x.c %d %d %s -1\n;", x, xpos, ypos, x->gl_editor->canvas_cnct_inlet_tag); } } } else { @@ -2925,35 +2935,35 @@ void canvas_doclick(t_canvas *x, int xpos, int ypos, int which, else // jsarlo { - if (x->canvas_cnct_inlet_tag[0] != 0) + if (x->gl_editor->canvas_cnct_inlet_tag[0] != 0) { sys_vgui(".x%x.c itemconfigure %s -outline %s -fill %s -width 1\n", - x, x->canvas_cnct_inlet_tag, + x, x->gl_editor->canvas_cnct_inlet_tag, (last_inlet_filter ? "black" : (inlet_issignal ? "$signal_cord" : "$msg_cord")), (inlet_issignal ? "$signal_nlet" : "$msg_nlet")); if (objtooltip) { objtooltip = 0; sys_vgui("pdtk_canvas_leaveitem .x%x.c;\n", x); } - x->canvas_cnct_inlet_tag[0] = 0; + x->gl_editor->canvas_cnct_inlet_tag[0] = 0; } - if (x->canvas_cnct_outlet_tag[0] != 0) + if (x->gl_editor->canvas_cnct_outlet_tag[0] != 0) { sys_vgui(".x%x.c itemconfigure %s -outline %s -fill %s -width 1\n", - x, x->canvas_cnct_outlet_tag, + x, x->gl_editor->canvas_cnct_outlet_tag, (last_outlet_filter ? "black" : (outlet_issignal ? "$signal_cord" : "$msg_cord")), (outlet_issignal ? "$signal_nlet" : "$msg_nlet")); if (objtooltip) { objtooltip = 0; sys_vgui("pdtk_canvas_leaveitem .x%x.c;\n", x); } - x->canvas_cnct_outlet_tag[0] = 0; + x->gl_editor->canvas_cnct_outlet_tag[0] = 0; } - if(x->gl_magic_glass) { - magicGlass_unbind(x->gl_magic_glass); - magicGlass_hide(x->gl_magic_glass); + if(x->gl_editor && x->gl_editor->gl_magic_glass) { + magicGlass_unbind(x->gl_editor->gl_magic_glass); + magicGlass_hide(x->gl_editor->gl_magic_glass); } canvas_setcursor(x, CURSOR_EDITMODE_NOTHING); @@ -3019,40 +3029,41 @@ void canvas_doclick(t_canvas *x, int xpos, int ypos, int which, for (parseOutlet = parseOb->ob_outlet; parseOutlet && parseOutno; parseOutlet = parseOutlet->o_next, parseOutno--); - if (parseOutlet && magicGlass_isOn(x->gl_magic_glass)) + if (parseOutlet && magicGlass_isOn(x->gl_editor->gl_magic_glass)) { - magicGlass_bind(x->gl_magic_glass, + magicGlass_bind(x->gl_editor->gl_magic_glass, t.tr_ob, t.tr_outno); - magicGlass_setDsp(x->gl_magic_glass, + magicGlass_setDsp(x->gl_editor->gl_magic_glass, obj_issignaloutlet(t.tr_ob, t.tr_outno)); } - magicGlass_moveText(x->gl_magic_glass, xpos, ypos); - if (magicGlass_isOn(x->gl_magic_glass)) - magicGlass_show(x->gl_magic_glass); - if (x->canvas_cnct_inlet_tag[0] != 0) + if (magicGlass_isOn(x->gl_editor->gl_magic_glass)) { + magicGlass_moveText(x->gl_editor->gl_magic_glass, xpos, ypos); + magicGlass_show(x->gl_editor->gl_magic_glass); + } + if (x->gl_editor->canvas_cnct_inlet_tag[0] != 0) { sys_vgui(".x%x.c itemconfigure %s -outline %s -fill %s -width 1\n", - x, x->canvas_cnct_inlet_tag, + x, x->gl_editor->canvas_cnct_inlet_tag, (last_inlet_filter ? "black" : (outlet_issignal ? "$signal_cord" : "$msg_cord")), (inlet_issignal ? "$signal_nlet" : "$msg_nlet")); if (objtooltip) { objtooltip = 0; sys_vgui("pdtk_canvas_leaveitem .x%x.c;\n", x); } - x->canvas_cnct_inlet_tag[0] = 0; + x->gl_editor->canvas_cnct_inlet_tag[0] = 0; } - if (x->canvas_cnct_outlet_tag[0] != 0) + if (x->gl_editor->canvas_cnct_outlet_tag[0] != 0) { sys_vgui(".x%x.c itemconfigure %s -outline %s -fill %s -width 1\n", - x, x->canvas_cnct_outlet_tag, + x, x->gl_editor->canvas_cnct_outlet_tag, (last_outlet_filter ? "black" : (outlet_issignal ? "$signal_cord" : "$msg_cord")), (outlet_issignal ? "$signal_nlet" : "$msg_nlet")); if (objtooltip) { objtooltip = 0; sys_vgui("pdtk_canvas_leaveitem .x%x.c;\n", x); } - x->canvas_cnct_outlet_tag[0] = 0; + x->gl_editor->canvas_cnct_outlet_tag[0] = 0; } // end jsarlo canvas_setcursor(x, CURSOR_EDITMODE_DISCONNECT); @@ -3060,34 +3071,34 @@ void canvas_doclick(t_canvas *x, int xpos, int ypos, int which, } } } - if (x->canvas_cnct_inlet_tag[0] != 0) + if (x->gl_editor->canvas_cnct_inlet_tag[0] != 0) { sys_vgui(".x%x.c itemconfigure %s -outline %s -fill %s -width 1\n", - x, x->canvas_cnct_inlet_tag, + x, x->gl_editor->canvas_cnct_inlet_tag, (last_inlet_filter ? "black" : (inlet_issignal ? "$signal_cord" : "$msg_cord")), (inlet_issignal ? "$signal_nlet" : "$msg_nlet")); if (objtooltip) { objtooltip = 0; sys_vgui("pdtk_canvas_leaveitem .x%x.c;\n", x); } - x->canvas_cnct_inlet_tag[0] = 0; + x->gl_editor->canvas_cnct_inlet_tag[0] = 0; } // jsarlo - if (x->canvas_cnct_outlet_tag[0] != 0) + if (x->gl_editor->canvas_cnct_outlet_tag[0] != 0) { sys_vgui(".x%x.c itemconfigure %s -outline %s -fill %s -width 1\n", - x, x->canvas_cnct_outlet_tag, + x, x->gl_editor->canvas_cnct_outlet_tag, (last_outlet_filter ? "black" : (outlet_issignal ? "$signal_cord" : "$msg_cord")), (outlet_issignal ? "$signal_nlet" : "$msg_nlet")); if (objtooltip) { objtooltip = 0; sys_vgui("pdtk_canvas_leaveitem .x%x.c;\n", x); } - x->canvas_cnct_outlet_tag[0] = 0; + x->gl_editor->canvas_cnct_outlet_tag[0] = 0; } - if(x->gl_magic_glass) { - magicGlass_unbind(x->gl_magic_glass); - magicGlass_hide(x->gl_magic_glass); + if(x->gl_editor && x->gl_editor->gl_magic_glass) { + magicGlass_unbind(x->gl_editor->gl_magic_glass); + magicGlass_hide(x->gl_editor->gl_magic_glass); } // end jsarlo canvas_setcursor(x, CURSOR_EDITMODE_NOTHING); @@ -3204,9 +3215,9 @@ int canvas_doconnect_doit(t_canvas *x, t_gobj *y1, t_gobj *y2, int closest1, int if (canvas_isconnected (x, ob1, closest1, ob2, closest2)) { - if(x->gl_magic_glass) { - magicGlass_unbind(x->gl_magic_glass); - magicGlass_hide(x->gl_magic_glass); + if(x->gl_editor && x->gl_editor->gl_magic_glass) { + magicGlass_unbind(x->gl_editor->gl_magic_glass); + magicGlass_hide(x->gl_editor->gl_magic_glass); } if (!multi) canvas_setcursor(x, CURSOR_EDITMODE_NOTHING); @@ -3216,9 +3227,9 @@ int canvas_doconnect_doit(t_canvas *x, t_gobj *y1, t_gobj *y2, int closest1, int !obj_issignalinlet(ob2, closest2)) { error("cannot connect signal outlet to control inlet"); - if(x->gl_magic_glass) { - magicGlass_unbind(x->gl_magic_glass); - magicGlass_hide(x->gl_magic_glass); + if(x->gl_editor && x->gl_editor->gl_magic_glass) { + magicGlass_unbind(x->gl_editor->gl_magic_glass); + magicGlass_hide(x->gl_editor->gl_magic_glass); } if (!multi) canvas_setcursor(x, CURSOR_EDITMODE_NOTHING); @@ -3259,29 +3270,29 @@ int canvas_doconnect_doit(t_canvas *x, t_gobj *y1, t_gobj *y2, int closest1, int (issignal ? "$signal_cord" : "$msg_cord"), (issignal ? "$signal_cord_width" : "$msg_cord_width"), oc); - if (x->canvas_cnct_inlet_tag[0] != 0) + if (x->gl_editor->canvas_cnct_inlet_tag[0] != 0) { sys_vgui(".x%x.c itemconfigure %s -outline %s -fill %s -width 1\n", - x, x->canvas_cnct_inlet_tag, + x, x->gl_editor->canvas_cnct_inlet_tag, (last_inlet_filter ? "black" : (obj_issignaloutlet(ob1, closest1) ? "$signal_cord" : "$msg_cord")), (inlet_issignal ? "$signal_nlet" : "$msg_nlet")); if (objtooltip) { objtooltip = 0; sys_vgui("pdtk_canvas_leaveitem .x%x.c;\n", x); } - x->canvas_cnct_inlet_tag[0] = 0; + x->gl_editor->canvas_cnct_inlet_tag[0] = 0; } - if (x->canvas_cnct_outlet_tag[0] != 0 && !glob_shift) + if (x->gl_editor->canvas_cnct_outlet_tag[0] != 0 && !glob_shift) { sys_vgui(".x%x.c itemconfigure %s -outline %s -fill %s -width 1\n", - x, x->canvas_cnct_outlet_tag, + x, x->gl_editor->canvas_cnct_outlet_tag, (last_outlet_filter ? "black" : (outlet_issignal ? "$signal_cord" : "$msg_cord")), (outlet_issignal ? "$signal_nlet" : "$msg_nlet")); if (objtooltip) { objtooltip = 0; sys_vgui("pdtk_canvas_leaveitem .x%x.c;\n", x); } - x->canvas_cnct_outlet_tag[0] = 0; + x->gl_editor->canvas_cnct_outlet_tag[0] = 0; } // end jsarlo canvas_dirty(x, 1); @@ -3742,10 +3753,10 @@ void canvas_doconnect(t_canvas *x, int xpos, int ypos, int which, int doit) // jsarlo { t_rtext *y = glist_findrtext(x, (t_text *)&ob2->ob_g); - if (x->canvas_cnct_inlet_tag[0] != 0) + if (x->gl_editor->canvas_cnct_inlet_tag[0] != 0) { sys_vgui(".x%x.c itemconfigure %s -outline %s -fill %s -width 1\n", - x, x->canvas_cnct_inlet_tag, + x, x->gl_editor->canvas_cnct_inlet_tag, (last_inlet_filter ? "black" : (outlet_issignal ? "$signal_cord" : "$msg_cord")), (inlet_issignal ? "$signal_nlet" : "$msg_nlet")); } @@ -3753,21 +3764,21 @@ void canvas_doconnect(t_canvas *x, int xpos, int ypos, int which, int doit) { last_inlet_filter = gobj_filter_highlight_behavior(y); //fprintf(stderr,"last_inlet_filter == %d\n", last_inlet_filter); - sprintf(x->canvas_cnct_inlet_tag, + sprintf(x->gl_editor->canvas_cnct_inlet_tag, "%si%d", rtext_gettag(y), closest2); sys_vgui(".x%x.c itemconfigure %s -outline $select_nlet_color -width $highlight_width\n", x, - x->canvas_cnct_inlet_tag); + x->gl_editor->canvas_cnct_inlet_tag); //sys_vgui(".x%x.c raise %s\n", // x, - // x->canvas_cnct_inlet_tag); + // x->gl_editor->canvas_cnct_inlet_tag); inlet_issignal = obj_issignalinlet(ob2, closest2); if (tooltips) { objtooltip = 1; sys_vgui("pdtk_canvas_enteritem .x%x.c %d %d %s -1;\n", - x, xpos, ypos, x->canvas_cnct_inlet_tag); + x, xpos, ypos, x->gl_editor->canvas_cnct_inlet_tag); } } canvas_setcursor(x, CURSOR_EDITMODE_CONNECT); @@ -3777,21 +3788,21 @@ void canvas_doconnect(t_canvas *x, int xpos, int ypos, int which, int doit) } } // jsarlo - if (x->canvas_cnct_inlet_tag[0] != 0) + if (x->gl_editor->canvas_cnct_inlet_tag[0] != 0) { sys_vgui(".x%x.c itemconfigure %s -outline %s -fill %s -width 1\n", - x, x->canvas_cnct_inlet_tag, + x, x->gl_editor->canvas_cnct_inlet_tag, (last_inlet_filter ? "black" : (outlet_issignal ? "$signal_cord" : "$msg_cord")), (inlet_issignal ? "$signal_nlet" : "$msg_nlet")); if (objtooltip) { objtooltip = 0; sys_vgui("pdtk_canvas_leaveitem .x%x.c;\n", x); } - x->canvas_cnct_inlet_tag[0] = 0; + x->gl_editor->canvas_cnct_inlet_tag[0] = 0; } - if(x->gl_magic_glass) { - magicGlass_unbind(x->gl_magic_glass); - magicGlass_hide(x->gl_magic_glass); + if(x->gl_editor && x->gl_editor->gl_magic_glass) { + magicGlass_unbind(x->gl_editor->gl_magic_glass); + magicGlass_hide(x->gl_editor->gl_magic_glass); } // end jsarlo canvas_setcursor(x, CURSOR_EDITMODE_NOTHING); @@ -3958,20 +3969,20 @@ void canvas_mouseup(t_canvas *x, if (x->gl_editor->e_onmotion != MA_CONNECT || x->gl_editor->e_onmotion == MA_CONNECT && !glob_shift) { //fprintf(stderr,"releasing shift during connect without the button pressed\n"); - if (x->canvas_cnct_outlet_tag[0] != 0) + if (x->gl_editor->canvas_cnct_outlet_tag[0] != 0) { sys_vgui(".x%x.c itemconfigure %s -outline %s -fill %s -width 1\n", - x, x->canvas_cnct_outlet_tag, + x, x->gl_editor->canvas_cnct_outlet_tag, (last_outlet_filter ? "black" : (outlet_issignal ? "$signal_cord" : "$msg_cord")), (outlet_issignal ? "$signal_nlet" : "$msg_nlet")); } - if (x->canvas_cnct_inlet_tag[0] != 0) + if (x->gl_editor->canvas_cnct_inlet_tag[0] != 0) { sys_vgui(".x%x.c itemconfigure %s -outline %s -fill %s -width 1\n", - x, x->canvas_cnct_inlet_tag, + x, x->gl_editor->canvas_cnct_inlet_tag, (last_inlet_filter ? "black" : (outlet_issignal ? "$signal_cord" : "$msg_cord")), (inlet_issignal ? "$signal_nlet" : "$msg_nlet")); - x->canvas_cnct_inlet_tag[0] = 0; + x->gl_editor->canvas_cnct_inlet_tag[0] = 0; } x->gl_editor->e_onmotion = MA_NONE; @@ -5942,25 +5953,25 @@ void canvas_editmode(t_canvas *x, t_floatarg fyesplease) if (glist_isvisible(x) && glist_istoplevel(x)) { // jsarlo - if (x->canvas_cnct_inlet_tag[0] != 0) + if (x->gl_editor->canvas_cnct_inlet_tag[0] != 0) { sys_vgui(".x%x.c itemconfigure %s -outline %s -fill %s -width 1\n", - x, x->canvas_cnct_inlet_tag, + x, x->gl_editor->canvas_cnct_inlet_tag, (last_inlet_filter ? "black" : (outlet_issignal ? "$signal_cord" : "$msg_cord")), (inlet_issignal ? "$signal_nlet" : "$msg_nlet")); - x->canvas_cnct_inlet_tag[0] = 0; + x->gl_editor->canvas_cnct_inlet_tag[0] = 0; } - if (x->canvas_cnct_outlet_tag[0] != 0) + if (x->gl_editor->canvas_cnct_outlet_tag[0] != 0) { sys_vgui(".x%x.c itemconfigure %s -outline %s -fill %s -width 1\n", - x, x->canvas_cnct_outlet_tag, + x, x->gl_editor->canvas_cnct_outlet_tag, (last_outlet_filter ? "black" : (outlet_issignal ? "$signal_cord" : "$msg_cord")), (outlet_issignal ? "$signal_nlet" : "$msg_nlet")); - x->canvas_cnct_outlet_tag[0] = 0; + x->gl_editor->canvas_cnct_outlet_tag[0] = 0; } - if(x->gl_magic_glass) { - magicGlass_unbind(x->gl_magic_glass); - magicGlass_hide(x->gl_magic_glass); + if(x->gl_editor && x->gl_editor->gl_magic_glass) { + magicGlass_unbind(x->gl_editor->gl_magic_glass); + magicGlass_hide(x->gl_editor->gl_magic_glass); } // end jsarlo //dpsaha@vt.edu called to delete the GOP_blob @@ -5983,22 +5994,22 @@ void canvas_editmode(t_canvas *x, t_floatarg fyesplease) void canvas_magicglass(t_canvas *x, t_floatarg fyesplease) { int yesplease = fyesplease; - if (yesplease && magicGlass_isOn(x->gl_magic_glass)) + if (yesplease && x->gl_editor && magicGlass_isOn(x->gl_editor->gl_magic_glass)) return; - if (!magicGlass_isOn(x->gl_magic_glass)) { + if (!magicGlass_isOn(x->gl_editor->gl_magic_glass)) { canvas_editmode(x, 1.); - magicGlass_setOn(x->gl_magic_glass, 1); - if (magicGlass_bound(x->gl_magic_glass)) + magicGlass_setOn(x->gl_editor->gl_magic_glass, 1); + if (magicGlass_bound(x->gl_editor->gl_magic_glass)) { - magicGlass_show(x->gl_magic_glass); + magicGlass_show(x->gl_editor->gl_magic_glass); } } else { - magicGlass_setOn(x->gl_magic_glass, 0); - magicGlass_hide(x->gl_magic_glass); + magicGlass_setOn(x->gl_editor->gl_magic_glass, 0); + magicGlass_hide(x->gl_editor->gl_magic_glass); } sys_vgui("pdtk_canvas_magicglassval .x%x %d\n", - glist_getcanvas(x), magicGlass_isOn(x->gl_magic_glass)); + glist_getcanvas(x), magicGlass_isOn(x->gl_editor->gl_magic_glass)); } // end jsarlo @@ -6048,8 +6059,8 @@ static void canvas_dofont(t_canvas *x, t_floatarg font, t_floatarg xresize, if (glist_isvisible(x)) { //fprintf(stderr,"glist_redraw %lx\n", x); - if (magicGlass_isOn(x->gl_magic_glass)) - magicGlass_hide(x->gl_magic_glass); + if (x->gl_editor && magicGlass_isOn(x->gl_editor->gl_magic_glass)) + magicGlass_hide(x->gl_editor->gl_magic_glass); glist_redraw(x); } for (y = x->gl_list; y; y = y->g_next)