OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [insight/] [tcl/] [doc/] [DoOneEvent.3] - Blame information for rev 1771

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 578 markom
'\"
2
'\" Copyright (c) 1990-1992 The Regents of the University of California.
3
'\" Copyright (c) 1994-1996 Sun Microsystems, Inc.
4
'\"
5
'\" See the file "license.terms" for information on usage and redistribution
6
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
7
'\"
8
'\" RCS: @(#) $Id: DoOneEvent.3,v 1.1.1.1 2002-01-16 10:25:23 markom Exp $
9
'\"
10
.so man.macros
11
.TH Tcl_DoOneEvent 3 7.5 Tcl "Tcl Library Procedures"
12
.BS
13
.SH NAME
14
Tcl_DoOneEvent \- wait for events and invoke event handlers
15
.SH SYNOPSIS
16
.nf
17
\fB#include \fR
18
.sp
19
int
20
\fBTcl_DoOneEvent\fR(\fIflags\fR)
21
.SH ARGUMENTS
22
.AS int flags
23
.AP int flags in
24
This parameter is normally zero.  It may be an OR-ed combination
25
of any of the following flag bits:
26
TCL_WINDOW_EVENTS,
27
TCL_FILE_EVENTS, TCL_TIMER_EVENTS, TCL_IDLE_EVENTS, TCL_ALL_EVENTS, or
28
TCL_DONT_WAIT.
29
.BE
30
 
31
.SH DESCRIPTION
32
.PP
33
This procedure is the entry point to Tcl's event loop; it is responsible for
34
waiting for events and dispatching event handlers created with
35
procedures such as \fBTk_CreateEventHandler\fR, \fBTcl_CreateFileHandler\fR,
36
\fBTcl_CreateTimerHandler\fR, and \fBTcl_DoWhenIdle\fR.
37
\fBTcl_DoOneEvent\fR checks to see if
38
events are already present on the Tcl event queue; if so,
39
it calls the handler(s) for the first (oldest) event, removes it from
40
the queue, and returns.
41
If there are no events ready to be handled, then \fBTcl_DoOneEvent\fR
42
checks for new events from all possible sources.
43
If any are found, it puts all of them on Tcl's event queue, calls
44
handlers for the first event on the queue, and returns.
45
If no events are found, \fBTcl_DoOneEvent\fR checks for \fBTcl_DoWhenIdle\fR
46
callbacks; if any are found, it invokes all of them and returns.
47
Finally, if no events or idle callbacks have been found, then
48
\fBTcl_DoOneEvent\fR sleeps until an event occurs; then it adds any
49
new events to the Tcl event queue, calls handlers for the first event,
50
and returns.
51
The normal return value is 1 to signify that some event
52
was processed (see below for other alternatives).
53
.PP
54
If the \fIflags\fR argument to \fBTcl_DoOneEvent\fR is non-zero,
55
it restricts the kinds of events that will be processed by
56
\fBTcl_DoOneEvent\fR.
57
\fIFlags\fR may be an OR-ed combination of any of the following bits:
58
.TP 27
59
\fBTCL_WINDOW_EVENTS\fR \-
60
Process window system events.
61
.TP 27
62
\fBTCL_FILE_EVENTS\fR \-
63
Process file events.
64
.TP 27
65
\fBTCL_TIMER_EVENTS\fR \-
66
Process timer events.
67
.TP 27
68
\fBTCL_IDLE_EVENTS\fR \-
69
Process idle callbacks.
70
.TP 27
71
\fBTCL_ALL_EVENTS\fR \-
72
Process all kinds of events:  equivalent to OR-ing together all of the
73
above flags or specifying none of them.
74
.TP 27
75
\fBTCL_DONT_WAIT\fR \-
76
Don't sleep:  process only events that are ready at the time of the
77
call.
78
.LP
79
If any of the flags \fBTCL_WINDOW_EVENTS\fR, \fBTCL_FILE_EVENTS\fR,
80
\fBTCL_TIMER_EVENTS\fR, or \fBTCL_IDLE_EVENTS\fR is set, then the only
81
events that will be considered are those for which flags are set.
82
Setting none of these flags is equivalent to the value
83
\fBTCL_ALL_EVENTS\fR, which causes all event types to be processed.
84
If an application has defined additional event sources with
85
\fBTcl_CreateEventSource\fR, then additional \fIflag\fR values
86
may also be valid, depending on those event sources.
87
.PP
88
The \fBTCL_DONT_WAIT\fR flag causes \fBTcl_DoOneEvent\fR not to put
89
the process to sleep:  it will check for events but if none are found
90
then it returns immediately with a return value of 0 to indicate
91
that no work was done.
92
\fBTcl_DoOneEvent\fR will also return 0 without doing anything if
93
the only alternative is to block forever (this can happen, for example,
94
if \fIflags\fR is \fBTCL_IDLE_EVENTS\fR and there are no
95
\fBTcl_DoWhenIdle\fR callbacks pending, or if no event handlers or
96
timer handlers exist).
97
.PP
98
\fBTcl_DoOneEvent\fR may be invoked recursively.  For example,
99
it is possible to invoke \fBTcl_DoOneEvent\fR recursively
100
from a handler called by \fBTcl_DoOneEvent\fR.  This sort
101
of operation is useful in some modal situations, such
102
as when a
103
notification dialog has been popped up and an application wishes to
104
wait for the user to click a button in the dialog before
105
doing anything else.
106
 
107
.SH KEYWORDS
108
callback, event, handler, idle, timer

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.