diff --git a/externals/unauthorized/grid.c b/externals/unauthorized/grid.c index da3c56ab1ea165cef34ecd6829ef457ef494156e..8ead72f69b5785b408cc180b6a8aab219922bb67 100644 --- a/externals/unauthorized/grid.c +++ b/externals/unauthorized/grid.c @@ -350,18 +350,18 @@ static void grid_properties(t_gobj *z, t_glist *owner) gui_start_vmess("gui_external_dialog", "ss", gfx_tag, "grid"); gui_start_array(); - gui_s("receive_symbol"); gui_s(x->x_name->s_name); - gui_s("width"); gui_i(x->x_width); - gui_s("min"); gui_f(x->x_min); - gui_s("max"); gui_f(x->x_max); - gui_s("height"); gui_i(x->x_height); - gui_s("y-min"); gui_f(x->y_min); - gui_s("y-max"); gui_f(x->y_max); - gui_s("grid_toggle"); gui_i(x->x_grid); - gui_s("x-steps"); gui_f(x->x_xstep); - gui_s("y-steps"); gui_f(x->x_ystep); - gui_s("x-lines"); gui_i(x->x_xlines); - gui_s("y-lines"); gui_i(x->x_ylines); + gui_s("symbol"); gui_s("receive_symbol"); gui_s(x->x_name->s_name); + gui_s("int"); gui_s("width"); gui_i(x->x_width); + gui_s("int"); gui_s("min"); gui_f(x->x_min); + gui_s("float"); gui_s("max"); gui_f(x->x_max); + gui_s("int"); gui_s("height"); gui_i(x->x_height); + gui_s("float"); gui_s("y-min"); gui_f(x->y_min); + gui_s("float"); gui_s("y-max"); gui_f(x->y_max); + gui_s("toggle"); gui_s("show_grid"); gui_i(x->x_grid); + gui_s("float"); gui_s("x-steps"); gui_f(x->x_xstep); + gui_s("float"); gui_s("y-steps"); gui_f(x->x_ystep); + gui_s("int"); gui_s("x-lines"); gui_i(x->x_xlines); + gui_s("int"); gui_s("y-lines"); gui_i(x->x_ylines); gui_end_array(); gui_end_vmess(); @@ -450,6 +450,11 @@ static void grid_displace(t_gobj *z, t_glist *glist, int dx, int dy) x->y_current += dy; if (xold != text_xpix(&x->x_obj, glist) || yold != text_ypix(&x->x_obj, glist)) { + gui_vmess("gui_text_displace", "xxii", + glist, + x, + dx, + dy); //grid_draw_move(x, x->x_glist); canvas_fixlinesfor(glist, (t_text *)z); } @@ -882,10 +887,10 @@ void grid_setup(void) /* Big hack for receiving edit-mode resize anchor clicks from g_editor.c. */ class_addmethod(grid_class, (t_method)grid_click_for_resizing, - gensym("_click_for_resizing"), + gensym("_click"), A_FLOAT, A_FLOAT, A_FLOAT, 0); class_addmethod(grid_class, (t_method)grid_motion_for_resizing, - gensym("_motion_for_resizing"), + gensym("_motion"), A_FLOAT, A_FLOAT, 0); grid_widgetbehavior.w_getrectfn = grid_getrect; grid_widgetbehavior.w_displacefn = grid_displace; diff --git a/pd/nw/dialog_external.html b/pd/nw/dialog_external.html index e6cb204a08ce5dd8a2af7fa1c4eaa99f0aa428dc..503dcd52c3c09286b6fc82eb84e427b6a3e226ef 100644 --- a/pd/nw/dialog_external.html +++ b/pd/nw/dialog_external.html @@ -98,13 +98,11 @@ function parse_attrs(attrs) { elem.label = attr.replace("_", " "); } else { if (elem.type === "enum") { - if (elem.value) { - elem.value.push(attr); + if (elem.options) { + elem.options.push(attr); } else { - elem.value = [attr]; + elem.options = [attr]; } - } else if (elem.type === "enum_index") { - elem.index = attr; } else { elem.value = attr; } @@ -137,7 +135,6 @@ function register_window_id(gfxstub, args) { translate_form(); build_form(external_name, array_of_objects); -fud = array_of_objects; // We don't turn on rendering of the "container" div until // We've finished displaying all the spans and populating the // labels and form elements. That makes it more efficient and @@ -180,12 +177,15 @@ function build_form(external_name, array_of_objects) { type = get_input_type(ob.type); if (type === "select") { elem = document.createElement("select"); - ob.value.forEach(function(e) { + ob.options.forEach(function(e) { var option = document.createElement("option"); option.textContent = e; elem.appendChild(option); }); - elem.selectedIndex = ob.index; + elem.selectedIndex = ob.value; + elem.onchange = function() { + ob.value = elem.selectedIndex; + } } else if (type === "checkbox") { elem = document.createElement("input"); elem.type = "checkbox";