|
|
| |
after(3) |
User Contributed Perl Documentation |
after(3) |
Tk::after - Execute a command after a time delay
$widget->after(ms)
$id =
$widget->after(ms?,callback?)
$id =
$widget->repeat(ms?,callback?)
$widget->afterCancel($id)
$id =
$widget->afterIdle(callback)
$widget->afterInfo?($id)?
$id->time(?delay?)
This method is used to delay execution of the program or to execute a callback
in background sometime in the future.
In perl/Tk $widget->after is
implemented via the class "Tk::After", and
callbacks are associated with $widget, and are
automatically cancelled when the widget is destroyed. An almost identical
interface, but without automatic cancel, and without repeat is provided via
Tk::after method.
The internal Tk::After class has the following synopsis:
$id = Tk::After->new($widget, tid, $time, 'once', callback);
$id = Tk::After->new($widget, tid, $time, 'repeat', callback);
$id->cancel;
$id->time(?delay?);
$id is a Tk::After object, an array of 5
elements:
$widget is the parent widget reference.
tid is the internal timer id, a unique string.
$time is the string 'idle', representing an
idle queue timer, or a integer millisecond value.
once or repeat specifies whether the timer is a
one-time after event, or a repeating repeat event.
callback specifies a Perl/Tk Tk::Callback object.
It's posible to change a repeat timer's delay value, or even cancel any
timer, using the time method. If delay is specified and
non-zero, a new timer delay is established. If delay is zero the timer
event is canceled just as if $id->cancel were
invoked. In all cases the current millisecond timer delay is returned.
Note: the new timer delay will take effect on the
subsequent timer event - this command will not cancel the pending
timer event and re-issue it with the new delay time.
- $widget->after(ms)
- The value ms must be an integer giving a time in milliseconds. The
command sleeps for ms milliseconds and then returns. While the
command is sleeping the application does not respond to events.
- $widget->after(ms,callback)
- In this form the command returns immediately, but it arranges for
callback be executed ms milliseconds later as an event
handler. The callback will be executed exactly once, at the given time.
The command will be executed in context of $widget.
If an error occurs while executing the delayed command then the Tk::Error
mechanism is used to report the error. The after command returns an
identifier (an object in the perl/Tk case) that can be used to cancel the
delayed command using afterCancel.
- $widget->repeat(ms,callback)
- In this form the command returns immediately, but it arranges for
callback be executed ms milliseconds later as an event
handler. After callback has executed it is re-scheduled, to be
executed in a futher ms, and so on until it is cancelled.
- $widget->afterCancel($id)
- $id->cancel
- Cancels the execution of a delayed command that was previously scheduled.
$id indicates which command should be canceled; it
must have been the return value from a previous after command. If
the command given by $id has already been executed
(and is not scheduled to be executed again) then afterCancel has no
effect.
- $widget->afterCancel(callback)
- This form is not robust in perl/Tk - its use is deprecated. This
command should also cancel the execution of a delayed command. The
callback argument is compared with pending callbacks, if a match is
found, that callback is cancelled and will never be executed; if no such
callback is currently pending then the afterCancel has no
effect.
- $widget->afterIdle(callback)
- Arranges for callback to be evaluated later as an idle callback.
The script will be run exactly once, the next time the event loop is
entered and there are no events to process. The command returns an
identifier that can be used to cancel the delayed command using
afterCancel. If an error occurs while executing the script then the
Tk::Error mechanism is used to report the error.
- $widget->afterInfo?($id)?
- This command returns information about existing event handlers. If no
$id argument is supplied, the command returns a list
of the identifiers for all existing event handlers created by the
after and repeat commands for $widget.
If $id is supplied, it specifies an existing handler;
$id must have been the return value from some
previous call to after or repeat and it must not have
triggered yet or been cancelled. In this case the command returns a list
with three elements. The first element of the list is the callback
associated with $id, the second element is either
idle or the integer timer millisecond value to indicate what
kind of event handler it is, and the third is a string once or
repeat to differentiate an after from a repeat
event.
The after(ms) and afterIdle forms of the
command assume that the application is event driven: the delayed commands
will not be executed unless the application enters the event loop. In
applications that are not normally event-driven, the event loop can be
entered with the vwait and update commands.
cancel, delay, idle callback, sleep, time
Visit the GSP FreeBSD Man Page Interface. Output converted with ManDoc. |