I don't know about afterIdle & afterCancel (haven't needed that
functionality), but I wasn't able to locate the equivalent of the perl/Tk
repeat(), so I use this in Tkx, which uses the Tkx version of after():

# used to implement timer functionality in Tkx, will execute subroutine
$pMy_sub every $millisecs milliseconds if $pEnabled
sub repeat  # ( $millisecs, $pMy_sub, $pEnabled )
{
        my ( $ms, $pMy_sub, $pEnabled ) = @_;
        
        my $repeater; # repeat wrapper

        $repeater = sub 
                {
                        Tkx::after($ms, $repeater) if ( $$pEnabled ); #queue
next run before running this instance to minimize timing error accrual
                        $pMy_sub->(@_);
                };
   Tkx::after($ms, $repeater);
}

It isn't quite as nice as the Tk repeat(), but it seems to work ok.

Mike


> -----Original Message-----
> From: E.R. Uber [mailto:eru...@gmail.com] 
> Sent: Friday, January 09, 2009 6:39 PM
> To: Tcl/Tk Mailing List
> Subject: Time Delays in Tkx
> 
> 
> Are there equivalents in Tkx to the following time delays in Tk:
>   $id = $widget->after( $milliseconds, \&callback );
> 
>   $id = $widget->afterIdle( \&callback );
>   $widget->afterCancel( $id );
> 
>   $widget->repeat( $milliseconds, \&callback );
> 
> Thanks
> 

Reply via email to