From 51cf6e81b4c63f98d409440832a1a24c7c5c4650 Mon Sep 17 00:00:00 2001 From: Ivica Ico Bukvic <ico@vt.edu> Date: Sun, 9 Jan 2011 21:24:00 -0500 Subject: [PATCH] Pd-0.42.5-extended-l2ork-dev-20110109.tar.bz2 --- src/g_canvas.c | 31 +++++++++++++++++++++++++++---- src/g_editor.c | 9 +++++++-- src/g_magicglass.c | 37 ++++++++++++++++++++++++++++--------- src/m_pd.h | 2 +- src/pd.tk | 8 +++++++- 5 files changed, 70 insertions(+), 17 deletions(-) diff --git a/src/g_canvas.c b/src/g_canvas.c index de90506d9..1d3044ffb 100644 --- a/src/g_canvas.c +++ b/src/g_canvas.c @@ -677,6 +677,7 @@ void canvas_drawredrect(t_canvas *x, int doit) called from the GUI after the fact to "notify" us that we're mapped. */ void canvas_map(t_canvas *x, t_floatarg f) { + //fprintf(stderr,"canvas_map\n"); int flag = (f != 0); t_gobj *y; if (flag) @@ -689,6 +690,28 @@ void canvas_map(t_canvas *x, t_floatarg f) bug("canvas_map"); canvas_vis(x, 1); } + + /* if parent has editor enabled and we're a sub-patch, + (but not an abstraction) match its edit mode to that + of its parent patch. */ + /*t_glist *parentx; + if (!canvas_isabstraction(x)) { + if (x->gl_owner) { + parentx = x->gl_owner; + while (parentx->gl_owner) + parentx = parentx->gl_owner; + if (parentx->gl_edit) + canvas_editmode(x, 1); + else if (x->gl_edit) + canvas_editmode(x, 0); + } + }*/ + /* for parent windows, let's make sure the cursor is updated + as soon as the window is open (if in edit mode) */ + //else if (x->gl_edit) { + //canvas_setcursor(x, CURSOR_EDITMODE_NOTHING); + //} + for (y = x->gl_list; y; y = y->g_next) gobj_vis(y, x, 1); for (sel = x->gl_editor->e_selection; sel; sel = sel->sel_next) @@ -1231,11 +1254,11 @@ static void canvas_dodsp(t_canvas *x, int toplevel, t_signal **sp) /* find all the "dsp" boxes and add them to the graph */ - // jsarlo ob = &x->gl_magic_glass->x_obj; - if (ob) - ugen_add(dc, ob); // this t_canvas could be an array, hence no gl_magic_glass - // end jsarlo + if (ob && x->gl_magic_glass->x_connectedObj != NULL) { + fprintf(stderr,"adding cord inspector to dsp\n"); + 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) if ((ob = pd_checkobject(&y->g_pd)) && zgetfn(&y->g_pd, dspsym)) diff --git a/src/g_editor.c b/src/g_editor.c index 5b900e4ee..055d7b5de 100644 --- a/src/g_editor.c +++ b/src/g_editor.c @@ -1314,6 +1314,7 @@ void canvas_vis(t_canvas *x, t_floatarg f) x->gl_edit); canvas_reflecttitle(x); x->gl_havewindow = 1; + /* //newly opened arrays created prior to pd-l2ork require fittograph t_gobj *g, *gg = NULL; @@ -2584,7 +2585,7 @@ void canvas_key(t_canvas *x, t_symbol *s, int ac, t_atom *av) if (x && keynum == 0 && x->gl_edit && !strncmp(gotkeysym->s_name, "Control", 7)) canvas_setcursor(x, down ? - CURSOR_RUNMODE_NOTHING :CURSOR_EDITMODE_NOTHING); + CURSOR_RUNMODE_NOTHING : CURSOR_EDITMODE_NOTHING); } void canvas_motion(t_canvas *x, t_floatarg xpos, t_floatarg ypos, @@ -3543,9 +3544,13 @@ void glob_key(void *dummy, t_symbol *s, int ac, t_atom *av) void canvas_editmode(t_canvas *x, t_floatarg fyesplease) { + //fprintf(stderr,"canvas_editmode %f\n", fyesplease); int yesplease = fyesplease; - if (yesplease && x->gl_edit) + if (yesplease && x->gl_edit) { + //if (x->gl_edit && glist_isvisible(x) && glist_istoplevel(x)) + // canvas_setcursor(x, CURSOR_EDITMODE_NOTHING); return; + } x->gl_edit = !x->gl_edit; if (x->gl_edit && glist_isvisible(x) && glist_istoplevel(x)) canvas_setcursor(x, CURSOR_EDITMODE_NOTHING); diff --git a/src/g_magicglass.c b/src/g_magicglass.c index c450bf8e5..37dcaf6f6 100644 --- a/src/g_magicglass.c +++ b/src/g_magicglass.c @@ -39,6 +39,7 @@ void magicGlass_clearText(t_magicGlass *x); void magicGlass_bind(t_magicGlass *x, t_object *obj, int outno) { + //fprintf(stderr,"magicglass_bind\n"); if (x->x_connectedObj != obj) { if (x->x_connectedObj != NULL) @@ -58,6 +59,7 @@ void magicGlass_bind(t_magicGlass *x, t_object *obj, int outno) void magicGlass_unbind(t_magicGlass *x) { + //fprintf(stderr,"magicglass_unbind\n"); if (x->x_connectedObj != NULL) { obj_disconnect(x->x_connectedObj, @@ -75,6 +77,7 @@ void magicGlass_unbind(t_magicGlass *x) void magicGlass_updateText(t_magicGlass *x, int moved) { + //fprintf(stderr,"magicglass_updateText\n"); int bgSize; /* change second argument (10.0) to provide optimal scaling in the following entry */ float font = (float)(sys_hostfontsize(glist_getfont((t_glist *)(x->x_c))))/10.0; @@ -134,6 +137,7 @@ void magicGlass_updateText(t_magicGlass *x, int moved) void magicGlass_drawNew(t_magicGlass *x) { + //fprintf(stderr,"magicglass_drawNew\n"); sys_vgui(".x%x.c create rectangle 0 0 0 0 -outline #ffffff -fill #000000 -tags magicGlassBg\n", x->x_c); sys_vgui(".x%x.c create polygon 0 0 0 0 0 0 -fill #000000 -width 4 -tags magicGlassLine\n", @@ -150,6 +154,7 @@ void magicGlass_drawNew(t_magicGlass *x) void magicGlass_undraw(t_magicGlass *x) { + //fprintf(stderr,"magicglass_undraw\n"); sys_vgui(".x%x.c delete magicGlassBg\n", x->x_c); sys_vgui(".x%x.c delete magicGlassLine\n", x->x_c); sys_vgui(".x%x.c delete magicGlassText\n", x->x_c); @@ -157,12 +162,14 @@ void magicGlass_undraw(t_magicGlass *x) void magicGlass_flashText(t_magicGlass *x) { + //fprintf(stderr,"magicglass_flashText\n"); sys_vgui(".x%x.c itemconfigure magicGlassText -fill #ffffff\n", x->x_c); } void magicGlass_clearText(t_magicGlass *x) { + //fprintf(stderr,"magicglass_clearText\n"); strcpy(x->x_old_string, x->x_string); x->x_string[0] = 0; magicGlass_updateText(x, 0); @@ -262,6 +269,7 @@ void magicGlass_setCanvas(t_magicGlass *x, int c) void magicGlass_show(t_magicGlass *x) { + //fprintf(stderr,"magicglass_show\n"); if (!x->x_visible) { x->x_sampleCount = 0; x->x_maxSample = -999999; @@ -273,16 +281,19 @@ void magicGlass_show(t_magicGlass *x) void magicGlass_hide(t_magicGlass *x) { - if (x->x_visible) + //fprintf(stderr,"magicglass_hide\n"); + if (x->x_visible) { magicGlass_undraw(x); - x->x_sampleCount = 0; - x->x_maxSample = -999999; - x->x_string[0] = 0; - x->x_visible = 0; + x->x_sampleCount = 0; + x->x_maxSample = -999999; + x->x_string[0] = 0; + x->x_visible = 0; + } } void magicGlass_moveText(t_magicGlass *x, int pX, int pY) { + //fprintf(stderr,"magicglass_moveText\n"); int bgSize; x->x_x = pX; @@ -292,6 +303,7 @@ void magicGlass_moveText(t_magicGlass *x, int pX, int pY) int magicGlass_bound(t_magicGlass *x) { + //fprintf(stderr,"magicglass_bound\n"); if (x->x_connectedObj) return 1; else @@ -300,6 +312,7 @@ int magicGlass_bound(t_magicGlass *x) int magicGlass_isOn(t_magicGlass *x) { + //fprintf(stderr,"magicglass_isOn\n"); if (x->x_viewOn) return 1; else @@ -308,6 +321,7 @@ int magicGlass_isOn(t_magicGlass *x) void magicGlass_setOn(t_magicGlass *x, int i) { + //fprintf(stderr,"magicglass_setOn\n"); if (i) { x->x_viewOn = 1; @@ -320,6 +334,7 @@ void magicGlass_setOn(t_magicGlass *x, int i) void magicGlass_setDsp(t_magicGlass *x, int i) { + //fprintf(stderr,"magicglass_setDsp\n"); if (i != x->x_dspOn) { if (i) { @@ -337,11 +352,12 @@ void magicGlass_setDsp(t_magicGlass *x, int i) t_int *magicGlass_perform(t_int *w) { t_magicGlass *x = (t_magicGlass *)(w[1]); - float *in = (float *)(w[2]); - int N = (int)(w[3]); - int i; - if (x->x_dspOn) + if (x->x_dspOn && x->x_connectedObj != NULL) { + fprintf(stderr,"magicglass_perform\n"); + float *in = (float *)(w[2]); + int N = (int)(w[3]); + int i; for (i = 0; i < N; i++) { if (in[i] > x->x_maxSample) @@ -361,12 +377,14 @@ t_int *magicGlass_perform(t_int *w) void magicGlass_dsp(t_magicGlass *x, t_signal **sp) { + //fprintf(stderr,"magicglass_dsp\n"); dsp_add(magicGlass_perform, 3, x, sp[0]->s_vec, sp[0]->s_n); x->x_issignal = 1; } void *magicGlass_new(int c) { + //fprintf(stderr,"magicglass_new\n"); t_magicGlass *x = (t_magicGlass *)pd_new(magicGlass_class); x->x_connectedObj= NULL; x->x_connectedOutno = 0; @@ -387,6 +405,7 @@ void *magicGlass_new(int c) void magicGlass_free(t_magicGlass *x) { + //fprintf(stderr,"magicglass_free\n"); x->x_dspOn = 0; clock_free(x->x_clearClock); } diff --git a/src/m_pd.h b/src/m_pd.h index 303f0b66b..6ae935710 100644 --- a/src/m_pd.h +++ b/src/m_pd.h @@ -11,7 +11,7 @@ extern "C" { #define PD_MAJOR_VERSION 0 #define PD_MINOR_VERSION 42 #define PD_BUGFIX_VERSION 5 -#define PD_TEST_VERSION "extended-l2ork-20110108" +#define PD_TEST_VERSION "extended-l2ork-20110109" /* old name for "MSW" flag -- we have to take it for the sake of many old "nmakefiles" for externs, which will define NT and not MSW */ diff --git a/src/pd.tk b/src/pd.tk index 38016e38b..7e4aefeb6 100644 --- a/src/pd.tk +++ b/src/pd.tk @@ -2067,7 +2067,13 @@ proc pdtk_canvas_new {name width height geometry editable} { -command [concat menu_editmode $name] \ -accelerator [accel_munge "Ctrl+e"] - $name.m.edit entryconfigure "Edit mode" -background "#7dd37d" + if { $editable == 1 } { + $name.m.edit entryconfigure "Edit mode" -background "#7dd37d" + #if { $ctrl_l_down == 0 $ctrl_r_down == 0 } { + # $name configure -cursor $cursor_editmode_nothing + #pd [concat $name editmode 1 \;] + #} + } #if { $editable == 0 } { # $name.m.edit entryconfigure "Edit mode" -indicatoron false -- GitLab