That is true, it is an easier change from the point of view of updating GUI externals.
I think we should really be looking at the whole GUI object API as a whole and redoing it so that Tcl handles a lot more of the stuff it does really easily. Things like handling cursor changes, mouse motion and clicks, tagging and moving, etc. This would inevitably mean a new API for writing GUI objects. My work towards this goal is in tkwidgets and the filterview object, its far from complete, but a solid start, here's the code: https://github.com/pd-projects/filterview https://github.com/pd-projects/tkwidgets (specifically the 'newentry' branch). .hc On Nov 5, 2011, at 11:53 AM, Ivica Ico Bukvic wrote: > The problem with the approach you suggested is that tcl would have to be > aware of all unique redrawing properties of individual objects and externals > that may require custom drawing commands. While not impossible, it would > require at the very least requiring of all gui-based externals. OTOH, my > approach only requires a recompile and I'd rather pick that over the > alternative. > > Ivica Ico Bukvic, D.M.A > Composition, Music Technology > Director, DISIS Interactive Sound & Intermedia Studio > Director, L2Ork Linux Laptop Orchestra > Assistant Director, CCTAD > Virginia Tech > Department of Music > Blacksburg, VA 24061-0240 > (540) 231-6139 > (540) 231-5034 (fax) > disis.music.vt.edu > l2ork.music.vt.edu > ico.bukvic.net > > Hans-Christoph Steiner <[email protected]> wrote: > > The problem with changing t_widgetbehavior is that it breaks binary > compatibililty, I think. That makes it a pain to manage the transition. > Personally, I think it'd be worthwhile to use the struct as it. Or really, > I'd like to see bigger changes to offload more stuff to the GUI, like mouse > motion and click handling, resizing, etc. For a resize of an object, 'pd' > only needs to know about it once its done, not while its happening. > > .hc > > On Nov 4, 2011, at 11:36 PM, Ivica Ico Bukvic wrote: > > > Because after studying the code it looked like a difficult thing to pull > > off. This is because the regular displacefn is used for initial posting of > > objects which is absolute in nature while displacewithtag is relative, so > > the two don’t play very nice. > > > > HTH > > > > Ico > > > > From: Hans-Christoph Steiner > [mailto:[email protected]] > > Sent: Friday, November 04, 2011 6:26 PM > > To: Ivica Ico Bukvic > > Cc: [email protected] > > Subject: Re: [PD] how to capture window-related mouse-events when toxy > > isdiscontinued? > > > > > > Hey Ico, > > > > What not just use the displacefn to do the move with tags? Then we > > wouldn't need to change that core struct. > > > > .hc > > > > Ivica Ico Bukvic <[email protected]> wrote: > > The said changes are in pre-git tarballs. I think they are also listed in > > the changelog under a specific date which should make things a bit easier > > to isolate. That said, implementation alters widgetbehavior struct by > > adding one more entry and as such it breaks compatibility with gridflow > > unless recompiled from scratch using the new .h file. Even then there might > > be other incompatibilities. That said, I've encountered none, other than > > gridflow. Of course, other externals need t! > o be > recompiled as well (but no changes to their source are required). > > > > HTH > > > > Best wishes, > > > > Ico > > > > Ivica Ico Bukvic, D.M.A > > Composition, Music Technology > > Director, DISIS Interactive Sound & Intermedia Studio > > Director, L2Ork Linux Laptop Orchestra > > Assistant Director, CCTAD > > Virginia Tech > > Department of Music > > Blacksburg, VA 24061-0240 > > (540) 231-6139 > > (540) 231-5034 (fax) > > disis.music.vt.edu > > l2ork.music.vt.edu > > ico.bukvic.net > > > > Hans-Christoph Steiner <[email protected]> wrote: > > > > Hey Ico, > > > > That's great, we need to do a lot more of that. Can you point me to where > > these changes are so I can check them out? > > > .hc > > > > On Nov 3, 2011, at 2:44 PM, Ivica Ico Bukvic wrote: > > > > > > Indeed, pd-l2ork moves entire selection by tag, so instead of redrawing > > everything, out issues single tcl/tk command. The only thing that still > > redrawed every time when displaced is gop-enabled patcher. > > > > Ivica Ico Bukvic, D.M.A > > Composition, Music Technology > > Director, DISIS Interactive Sound & Intermedia Studio > > Director, L2Ork Linux Laptop Orchestra > > Assistant Director, CCTAD > > Virginia Tech > > Department of Music > > Blacksburg, VA 24061-0240 > > (540) 231-6139 > > (540) 231-5034 (fax) > > disis.music.vt.edu > > l2ork.music.vt.edu > > ico.bukvic.net > > > > Jonathan Wilkes <[email protected]> wrote: > > I bel! > ieve > Ivica made such a modification in Pd-l2ork-- whatever the case, moving many > iemguis in > > > > Pd-l2ork is much snappier than in Vanilla or Pd-extended. But I haven't > > measured the cpu load. > > > > > > > > -Jonathan > > > > > > > > > > > > ----- Original Message ----- > > > > > From: Hans-Christoph Steiner <[email protected]> > > > > > To: João Pais <[email protected]> > > > > > Cc: katja <[email protected]>; "[email protected]" <[email protected]>; > > > Jonathan Wilkes <[email protected]> > > > > > Sent: Thursday, November 3, 2011 11:07 AM > > > > > Subject: Re: [PD] how to capture window-related mouse-events when toxy is > > > discontinued? > > > > > > > > > > > > > > > I > > doubt that Tcl/Tk's drawing code is being overloaded. Instead! > , try > > > > > > running "path/to/pd -stderr -d 3" and you'll see that 'pd' > > > > > is sending 'pd-gui' massive amounts of Tcl code to pa! > > rse, > > compile, and > > > > > execute. In the case of a move, this could be accomplished with one line > > > of Tcl > > > > > to tag everything you want to move, then one move command to let Tcl/Tk > > > do the > > > > > moving. > > > > > > > > > > .hc > > > > > > > > > > On Nov 3, 2011, at 10:31 AM, João Pais wrote: > > > > > > > > > >> those spikes is what I was predicting with the graphic overloading of > > > > > tcl/tk (through data structures, in this case). > > > > >> > > > > >> you could also try the following: make the "selectable area" > > > > > around one corner (or m! > iddle) > of the button: with a tiny bit more resolution, > > > > > but less points in the template. if you want to keep the squares, it's > > > even > > > > > better, because it helps you selecting the structs. > > > > >> > > > > >> Or one other thing: maybe can the tcl/tk code be changed, so that it > > > > > doesn't overload that fast? Reduce the redraw rate, or something else? (I > > > > > h! > > ave no > > idea about tcl/tk) > > > > >> > > > > >> Or change the output rate of the struct object? (this might not help > > >> much) > > > > >> > > > > >> > > > > >> About the background grid for instant jumps, an implementation of it in > > >> run > > > > > mode is easy. I could try to give an example, but don't have any time for > > > > > now. > > > >> > > > > >> > > > > >>> ----- Original Message ----- > > > > >>>> From: katja <[email protected]> > > > > >>>> To: [email protected] > > > > >>>> Cc: > > > > >>>> Sent: Thursday, November 3, 2011 6:10 AM > > > > >>>> Subject: Re: [PD] how to capture window-related mouse-events when > > > > > toxy is discontinued? > > > > >>>> > > > > >>>> On Thu, Nov 3, 2011 at 1:30 AM, Jonathan Wilkes > > > > > <[email protected]> > > > > >>>> > > wrote: > > > > >>>> > > > > >>>>> How does the cpu usage in my demo! > > compare > > to your patch where > > > > > you use > > > > > >>>>> a radiobutton? > > > > >>>> > > > > >>>> Here's a cpu load comparison of objects dragged continuously > > > > > (on intel > > > > >>>> mac 2GHz): > > > > >>>> > > > > >>>> polygon in movable_box2.pd: 23 % > > > > >>>> polygon in 07.sequencer.pd (help browser): 16% > > > > >>>> radiobutton in moving_objects.pd: 12 % > > > > >>>> regular Pd slider: 13 % > > > > >>>> 2D geo in a gem window: 2.5% > > > > >>> > > > > >>> I just got intermittent rises up to 50% on a dual core 64-bit amd with > > > > >>> all of the above. > > > > >>> > > > > >>> I imagine that the cpu load for movable_box2.pd is due t! > o the > number of > > > > >>> points in the polygon. I think you could get a 20x20 draggable square > > > > > with 8 coordinates-- that > > > > >>> would be equal to the number of p! > > oints in > > a radiobutton so maybe that > > > > > would get down > > > > >>> to a corresponding cpu load. > > > > >>> > > > > >>> I'll try some tweaks later to see if that works. > > > > >>> > > > > >>> -Jonathan > > > > >>> > > > > >>>> > > > > >>>> Your polygon method is plain vanilla Pd and that makes it > > > > > attractive > > > > >>>> for a widely shared Pd patch. No risk of broken dependencies. But I > > > > > am > > > > >>>> af! > raid it > is too cpu-intensive, particularly on Windows. Thanks for > > > > >>>> sharing the idea though, it is inspiring. > > > > >>>> > > > > >>>> Katja > > > > >>>> > > > > >>>> > > > > > > > > > > > > > > >>>> [email protected] mailing list > > > > >>>> UNSUBSCRIBE and account-management -> > > > > >>>> http://lists.puredata.info/listinfo/pd-list > > > > >>>> > > > > > > >>> > > > > >>> > > > > > > > > > > > > > > >>> [email protected] mailing list > > > > >>> UNSUBSCRIBE and account-management -> > > > > > http://lists.puredata.info/listinfo/pd-list > > > > >> > > > > >> > > > > >> -- > > > > >> Friedenstr. 58 > > > > >> 10249 Berlin (Deutschland) > > > > >> Tel +49 30 42020091 | Mob +49 162 6843570 > > > > >> Studio +49 30 69509190 > > > > >> [email protected] | skype: jmmmpjmmmp > > > > >> > > > > >> > > > > > > > > > > > > > > >> [email protected] mailing list > > > > >> UNSUBSCRIBE and account-management -> > > > > > http://lists.puredata.info/listinfo/pd-list > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > 'You people have such restrictive dress for women,’ she > > said, hobbling away > > > > > in ! > > three > > inch heels and panty hose to finish out another pink-collar temp pool > > > > > day. - “Hijab Scene #2", by Mohja Kahf > > > > > > > > > > > > > > > > > > > [email protected] mailing list > > > > UNSUBSCRIBE and account-management -> > > http://lists.puredata.info/listinfo/pd-list > > > > > > > > > > ---------------------------------------------------------------------------- “We must become the change we want to see. - Mahatma Gandhi
_______________________________________________ [email protected] mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
