i may be totally out of my depth here as i&#39;m not a programmer but i believe MaxMSP was able to do zooming through the use of Juce. it certainly wasn&#39;t available beforehand in any of the 4.X series. personally i find zooming to be one the most massively useful things when editing patches. being old-ish my eyes definitely have more issues than they used to...<div>
<br></div><div>scott<br><br><div class="gmail_quote">On Wed, Feb 22, 2012 at 10:32 AM, Mathieu Bouchard <span dir="ltr">&lt;<a href="mailto:matju@artengine.ca">matju@artengine.ca</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Le 2012-02-22 à 09:31:00, Hans-Christoph Steiner a écrit :<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">
On Feb 22, 2012, at 12:48 AM, Mathieu Bouchard wrote:<br>
</div><div class="im"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
How do you do zooming with Tcl/Tk ?<br>
I mean... I implemented zooming using a big workaround which wouldn&#39;t have worked with Pd externals... is there a trouble-free way to zoom ?<br>
</blockquote>
<br>
Didn&#39;t you use Tk scaling?  That&#39;s what I mean. Yes, this would not work with existing GUI objects.<br>
</div></blockquote>
<br>
« Tk Scaling » is the name of a font measurement ratio for pt/px conversions, right ?<br>
<br>
TkCanvas&#39; «scale» command is unrelated, and does not do zoom, because it changes the size of items. The difference between that and zoom is that Tk doesn&#39;t make you see the prescaled coordinates, it still interacts with you only in terms of actual pixels. This means that most of the time, you&#39;d have to scale the values on your own using [expr {$x*$scale}] and stuff.<br>

<br>
In DesireData, I avoid TkCanvas&#39;s «scale» command entirely, and I make every canvas item creation/modification through a function that scans the arguments of the item, scales all coords it sees, scales the thickness of lines, scales the font sizes, automatically decides tags to be used, and figures out what to do differently in create vs modify.<br>

<br>
That way, the widget&#39;s behaviour does not have to implement zoom, it does not have to implement modification-functions (because the create-function is able to redraw an existing thing), it does not have to implement the delete-function (because the enforced common tag makes a single command delete), etc.<br>

<br>
That&#39;s not compatible with t_widgetbehavior and couldn&#39;t possibly be made to be.<div class="HOEnZb"><div class="h5"><br>
<br>
 ______________________________<u></u>______________________________<u></u>__________<br>
| Mathieu BOUCHARD ----- téléphone : <a href="tel:%2B1.514.383.3801" value="+15143833801" target="_blank">+1.514.383.3801</a> ----- Montréal, QC</div></div></blockquote></div><br></div>