diff --git a/externals/ggee/gui/envgen.c b/externals/ggee/gui/envgen.c index f1826e9ebdab1923898b6a3485a6dda8e76717bf..ab95281aeacd96a82f709b25cca72cb68ccd5333 100644 --- a/externals/ggee/gui/envgen.c +++ b/externals/ggee/gui/envgen.c @@ -358,6 +358,7 @@ void envgen_setup(void) class_addmethod(envgen_class,(t_method)envgen_release,gensym("release"),A_NULL); envgen_widgetbehavior.w_getrectfn = envgen_getrect; envgen_widgetbehavior.w_displacefn = envgen_displace; + envgen_widgetbehavior.w_displacefnwtag = envgen_displace_withtag; envgen_widgetbehavior.w_selectfn = envgen_select; envgen_widgetbehavior.w_activatefn = envgen_activate; envgen_widgetbehavior.w_deletefn = envgen_delete; diff --git a/externals/ggee/gui/w_envgen.h b/externals/ggee/gui/w_envgen.h index 29a732c0186b4c3785084df3cfbfe552e8875bbf..b457ed96c006303081a3bb93bca601559fe30dd1 100644 --- a/externals/ggee/gui/w_envgen.h +++ b/externals/ggee/gui/w_envgen.h @@ -50,6 +50,15 @@ static void draw_inlets(t_envgen *x, t_glist *glist, int firsttime, int nin, int // glist_getcanvas(glist), x, i, // onset, ypos + x->w.height - 1 + 2*BORDER, // onset + IOWIDTH, ypos + x->w.height + 2*BORDER); + gui_vmess("gui_envgen_move_xlet", "xxsiiiii", + glist_getcanvas(glist), + x, + "o", + i, + onset, + ypos + x->w.height - 1 + 2 * BORDER, + xpos, + ypos); } } n = nin; @@ -395,12 +404,20 @@ static void envgen_getrect(t_gobj *z, t_glist *owner, static void envgen_displace(t_gobj *z, t_glist *glist, int dx, int dy) { + t_envgen *x = (t_envgen *)z; x->x_obj.te_xpix += dx; x->x_obj.te_ypix += dy; - envgen_drawme(x, glist, 0); - canvas_fixlinesfor(glist,(t_text*) x); + //envgen_drawme(x, glist, 0); + //canvas_fixlinesfor(glist,(t_text*) x); +} + +static void envgen_displace_withtag(t_gobj *z, t_glist *glist, int dx, int dy) +{ + t_envgen *x = (t_envgen *)z; + x->x_obj.te_xpix += dx; + x->x_obj.te_ypix += dy; } static void envgen_select(t_gobj *z, t_glist *glist, int state) @@ -408,8 +425,12 @@ static void envgen_select(t_gobj *z, t_glist *glist, int state) t_envgen *x = (t_envgen *)z; //sys_vgui(".x%x.c itemconfigure %xS -fill %s\n", glist, // x, (state? "blue" : BACKGROUNDCOLOR)); - gui_vmess("gui_envgen_select", "xxi", - glist_getcanvas(glist), x, state); + if (state) + gui_vmess("gui_gobj_select", "xx", + glist_getcanvas(glist), x); + else + gui_vmess("gui_gobj_deselect", "xx", + glist_getcanvas(glist), x); } diff --git a/pd/nw/pdgui.js b/pd/nw/pdgui.js index 306a0f1e2008f57296a1ba0b536ea5e12e63753d..fccad4ea6e0a12a1eaf906094592583b4a2e6dfd 100644 --- a/pd/nw/pdgui.js +++ b/pd/nw/pdgui.js @@ -3248,13 +3248,12 @@ function gui_envgen_erase_text(cid, tag) { } } -function gui_envgen_select(cid, tag, state) { - var g = get_gobj(cid, tag); - if (state !== 0) { - g.classList.add("selected"); - } else { - g.classList.remove("selected"); - } +function gui_envgen_move_xlet(cid, tag, type, i, x, y, basex, basey) { + var xlet = get_item(cid, tag + type + i); + configure_item(xlet, { + x: x - basex, + y: y - basey + }); } exports.add_popup = add_popup;