[PD] [PD-dev] tkwidgets

Jonathan Wilkes jancsika at yahoo.com
Sun Sep 4 04:50:45 CEST 2011


----- Original Message -----

> From: Mathieu Bouchard <matju at artengine.ca>
> To: Hans-Christoph Steiner <hans at at.or.at>
> Cc: pd-list <pd-list at iem.at>; João Pais <jmmmpais at googlemail.com>
> Sent: Saturday, September 3, 2011 6:31 PM
> Subject: Re: [PD] [PD-dev] tkwidgets
> 
> On Sat, 3 Sep 2011, Hans-Christoph Steiner wrote:
> 
>>  Here's a good example of what I mean: the drawing commands for obj,msg, 
> etc boxes should not be in 'pd'.  'pd' should tell 
> 'pd-gui': "draw an object on this canvas, at this x,y with these 
> inlets and outlets". "pd-gui" should also handle the mouse 
> clicks, selection coloration, change of line style from dashed to solid, etc.  
> So something like:
>> 
>>   draw_object .x230ad0.c "osc~ 500" 10 500 inlet~ inlet outlet~
> 
> desiredata sends :
>   change x9ad1038 x9acecc0 0 {#X obj 140 100 osc~ 500;} 2 1 1
> 
> this is not using sys_mgui(), though. I don't really remember why I decided 
> to not use it. It's using the pd_upload() function in the server. The 4th 
> argument is the line of the object as it would be written in a .pd file. the 5th 
> and 6th arguments is the number of inlets and outlets, and the 7th argument 
> means that the object is ok (no red dash). The first arg is the id of the 
> object, the second arg is the id of the canvas, and the third arg is the index 
> of the object (as used in #X connect).
> 
> This was for object updates, and was supposed to be replaced by something more 
> efficient based on diffs. The other problem with uploading whole objects was 
> that it didn't merge diffs, as has to happen when you move a slider that is 
> currently receiving values or changing colour on its own, for example.
> 
> sys_mgui was meant for sending updates. You'd give an object id, then a 
> selector, then an arg signature (like "fssfsffsf" to mean some 
> combination of float and symbols, for example), then varargs. This assumed that 
> the object id came first, as in most forms of object-oriented Tcl, and unlike 
> plain procs.
> 
> the proc named «change» had to be a regular proc, because it's also 
> responsible for creating the object if it does not exist, so that there 
> isn't any special case for that, and then it couldn't be an instance 
> method because the object might not exist yet.

If you spent the same amount of time working on DD as you do writing about how 
DD works, you could spend a lot less time writing about how DD works, and a lot 
more time working on DD. :)

-Jonathan

> 
> _______________________________________________________________________
> | Mathieu Bouchard ---- tél: +1.514.383.3801 ---- Villeray, Montréal, QC
> _______________________________________________
> Pd-list at iem.at mailing list
> UNSUBSCRIBE and account-management -> 
> http://lists.puredata.info/listinfo/pd-list
>



More information about the Pd-list mailing list