> From: Kevin Walzer [mailto:k...@codebykevin.com]

> The solution was so simple and elegant it astounded me:
> 
> Tkx::tclAE__installEventHandler ("Perl", "hihi", \&hello);
> 
> In other words, pass the reference to the subroutine, just like a command
> callback, and the Tkx bridge takes care of mapping it internally to a Tcl
> command and then returning the correct output first to the app, then to the
> calling AppleScript.
> 
> Amazing. I've been beating my head against a wall for a week trying to get
> this to work at the C level, without results. This opens up all kinds of 
> things
> for my projects--thank you so much for the terrific work!

Hi Kevin,
Sorry for not replying earlier, when you haven't figured out the solution yet.

I want to add, that - while you've found correct solution, there is some more 
TIMTOWTDI that I regularly use.

For a long time already I more heavily use just Tcl module, with only minimal 
addition of higher-level modules (like Tkx  or Tcl::Tk in my case)

You can just do
$int->Eval('.....'); # include any multiline code here to create widgets or 
whatever

And then 
$int->call('cmd', 'arg1', 'etc'); # for tcl/tk commands
$int->icall('.widget.some.thing', 'widgetmeth', 'etc'); # for tcl/tk commands 
that do not involve perl references
$int->icall('.widget.some.thing', '-command', 'puts hello'}); # ... do not 
involve perl references
$int->call('.widget.some.thing', '-command', sub{print 'hello'}); # here sub {} 
- binded to tcl/tk counterpart

'icall' faster than 'call' and it does not do any perl reference to tcl binding.

While I am using Tcl::Tk instead of Tkx - both are on top of same Tcl module, 
just different syntax - the same apply.

Regards,
Vadim.

Reply via email to