Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / tools / src / nas,5.n2.os.2 / lib / python / man / man3 / Tcl_DoOneEvent.3
CommitLineData
86530b38
AT
1'\"
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.2 1998/09/14 18:39:48 stanton Exp $
9'\"
10'\" The definitions below are for supplemental macros used in Tcl/Tk
11'\" manual entries.
12'\"
13'\" .AP type name in/out ?indent?
14'\" Start paragraph describing an argument to a library procedure.
15'\" type is type of argument (int, etc.), in/out is either "in", "out",
16'\" or "in/out" to describe whether procedure reads or modifies arg,
17'\" and indent is equivalent to second arg of .IP (shouldn't ever be
18'\" needed; use .AS below instead)
19'\"
20'\" .AS ?type? ?name?
21'\" Give maximum sizes of arguments for setting tab stops. Type and
22'\" name are examples of largest possible arguments that will be passed
23'\" to .AP later. If args are omitted, default tab stops are used.
24'\"
25'\" .BS
26'\" Start box enclosure. From here until next .BE, everything will be
27'\" enclosed in one large box.
28'\"
29'\" .BE
30'\" End of box enclosure.
31'\"
32'\" .CS
33'\" Begin code excerpt.
34'\"
35'\" .CE
36'\" End code excerpt.
37'\"
38'\" .VS ?version? ?br?
39'\" Begin vertical sidebar, for use in marking newly-changed parts
40'\" of man pages. The first argument is ignored and used for recording
41'\" the version when the .VS was added, so that the sidebars can be
42'\" found and removed when they reach a certain age. If another argument
43'\" is present, then a line break is forced before starting the sidebar.
44'\"
45'\" .VE
46'\" End of vertical sidebar.
47'\"
48'\" .DS
49'\" Begin an indented unfilled display.
50'\"
51'\" .DE
52'\" End of indented unfilled display.
53'\"
54'\" .SO
55'\" Start of list of standard options for a Tk widget. The
56'\" options follow on successive lines, in four columns separated
57'\" by tabs.
58'\"
59'\" .SE
60'\" End of list of standard options for a Tk widget.
61'\"
62'\" .OP cmdName dbName dbClass
63'\" Start of description of a specific option. cmdName gives the
64'\" option's name as specified in the class command, dbName gives
65'\" the option's name in the option database, and dbClass gives
66'\" the option's class in the option database.
67'\"
68'\" .UL arg1 arg2
69'\" Print arg1 underlined, then print arg2 normally.
70'\"
71'\" RCS: @(#) $Id: man.macros,v 1.4 2000/08/25 06:18:32 ericm Exp $
72'\"
73'\" # Set up traps and other miscellaneous stuff for Tcl/Tk man pages.
74.if t .wh -1.3i ^B
75.nr ^l \n(.l
76.ad b
77'\" # Start an argument description
78.de AP
79.ie !"\\$4"" .TP \\$4
80.el \{\
81. ie !"\\$2"" .TP \\n()Cu
82. el .TP 15
83.\}
84.ta \\n()Au \\n()Bu
85.ie !"\\$3"" \{\
86\&\\$1 \\fI\\$2\\fP (\\$3)
87.\".b
88.\}
89.el \{\
90.br
91.ie !"\\$2"" \{\
92\&\\$1 \\fI\\$2\\fP
93.\}
94.el \{\
95\&\\fI\\$1\\fP
96.\}
97.\}
98..
99'\" # define tabbing values for .AP
100.de AS
101.nr )A 10n
102.if !"\\$1"" .nr )A \\w'\\$1'u+3n
103.nr )B \\n()Au+15n
104.\"
105.if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n
106.nr )C \\n()Bu+\\w'(in/out)'u+2n
107..
108.AS Tcl_Interp Tcl_CreateInterp in/out
109'\" # BS - start boxed text
110'\" # ^y = starting y location
111'\" # ^b = 1
112.de BS
113.br
114.mk ^y
115.nr ^b 1u
116.if n .nf
117.if n .ti 0
118.if n \l'\\n(.lu\(ul'
119.if n .fi
120..
121'\" # BE - end boxed text (draw box now)
122.de BE
123.nf
124.ti 0
125.mk ^t
126.ie n \l'\\n(^lu\(ul'
127.el \{\
128.\" Draw four-sided box normally, but don't draw top of
129.\" box if the box started on an earlier page.
130.ie !\\n(^b-1 \{\
131\h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul'
132.\}
133.el \}\
134\h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul'
135.\}
136.\}
137.fi
138.br
139.nr ^b 0
140..
141'\" # VS - start vertical sidebar
142'\" # ^Y = starting y location
143'\" # ^v = 1 (for troff; for nroff this doesn't matter)
144.de VS
145.if !"\\$2"" .br
146.mk ^Y
147.ie n 'mc \s12\(br\s0
148.el .nr ^v 1u
149..
150'\" # VE - end of vertical sidebar
151.de VE
152.ie n 'mc
153.el \{\
154.ev 2
155.nf
156.ti 0
157.mk ^t
158\h'|\\n(^lu+3n'\L'|\\n(^Yu-1v\(bv'\v'\\n(^tu+1v-\\n(^Yu'\h'-|\\n(^lu+3n'
159.sp -1
160.fi
161.ev
162.\}
163.nr ^v 0
164..
165'\" # Special macro to handle page bottom: finish off current
166'\" # box/sidebar if in box/sidebar mode, then invoked standard
167'\" # page bottom macro.
168.de ^B
169.ev 2
170'ti 0
171'nf
172.mk ^t
173.if \\n(^b \{\
174.\" Draw three-sided box if this is the box's first page,
175.\" draw two sides but no top otherwise.
176.ie !\\n(^b-1 \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c
177.el \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c
178.\}
179.if \\n(^v \{\
180.nr ^x \\n(^tu+1v-\\n(^Yu
181\kx\h'-\\nxu'\h'|\\n(^lu+3n'\ky\L'-\\n(^xu'\v'\\n(^xu'\h'|0u'\c
182.\}
183.bp
184'fi
185.ev
186.if \\n(^b \{\
187.mk ^y
188.nr ^b 2
189.\}
190.if \\n(^v \{\
191.mk ^Y
192.\}
193..
194'\" # DS - begin display
195.de DS
196.RS
197.nf
198.sp
199..
200'\" # DE - end display
201.de DE
202.fi
203.RE
204.sp
205..
206'\" # SO - start of list of standard options
207.de SO
208.SH "STANDARD OPTIONS"
209.LP
210.nf
211.ta 5.5c 11c
212.ft B
213..
214'\" # SE - end of list of standard options
215.de SE
216.fi
217.ft R
218.LP
219See the \\fBoptions\\fR manual entry for details on the standard options.
220..
221'\" # OP - start of full description for a single option
222.de OP
223.LP
224.nf
225.ta 4c
226Command-Line Name: \\fB\\$1\\fR
227Database Name: \\fB\\$2\\fR
228Database Class: \\fB\\$3\\fR
229.fi
230.IP
231..
232'\" # CS - begin code excerpt
233.de CS
234.RS
235.nf
236.ta .25i .5i .75i 1i
237..
238'\" # CE - end code excerpt
239.de CE
240.fi
241.RE
242..
243.de UL
244\\$1\l'|0\(ul'\\$2
245..
246.TH Tcl_DoOneEvent 3 7.5 Tcl "Tcl Library Procedures"
247.BS
248.SH NAME
249Tcl_DoOneEvent \- wait for events and invoke event handlers
250.SH SYNOPSIS
251.nf
252\fB#include <tcl.h>\fR
253.sp
254int
255\fBTcl_DoOneEvent\fR(\fIflags\fR)
256.SH ARGUMENTS
257.AS int flags
258.AP int flags in
259This parameter is normally zero. It may be an OR-ed combination
260of any of the following flag bits:
261TCL_WINDOW_EVENTS,
262TCL_FILE_EVENTS, TCL_TIMER_EVENTS, TCL_IDLE_EVENTS, TCL_ALL_EVENTS, or
263TCL_DONT_WAIT.
264.BE
265
266.SH DESCRIPTION
267.PP
268This procedure is the entry point to Tcl's event loop; it is responsible for
269waiting for events and dispatching event handlers created with
270procedures such as \fBTk_CreateEventHandler\fR, \fBTcl_CreateFileHandler\fR,
271\fBTcl_CreateTimerHandler\fR, and \fBTcl_DoWhenIdle\fR.
272\fBTcl_DoOneEvent\fR checks to see if
273events are already present on the Tcl event queue; if so,
274it calls the handler(s) for the first (oldest) event, removes it from
275the queue, and returns.
276If there are no events ready to be handled, then \fBTcl_DoOneEvent\fR
277checks for new events from all possible sources.
278If any are found, it puts all of them on Tcl's event queue, calls
279handlers for the first event on the queue, and returns.
280If no events are found, \fBTcl_DoOneEvent\fR checks for \fBTcl_DoWhenIdle\fR
281callbacks; if any are found, it invokes all of them and returns.
282Finally, if no events or idle callbacks have been found, then
283\fBTcl_DoOneEvent\fR sleeps until an event occurs; then it adds any
284new events to the Tcl event queue, calls handlers for the first event,
285and returns.
286The normal return value is 1 to signify that some event
287was processed (see below for other alternatives).
288.PP
289If the \fIflags\fR argument to \fBTcl_DoOneEvent\fR is non-zero,
290it restricts the kinds of events that will be processed by
291\fBTcl_DoOneEvent\fR.
292\fIFlags\fR may be an OR-ed combination of any of the following bits:
293.TP 27
294\fBTCL_WINDOW_EVENTS\fR \-
295Process window system events.
296.TP 27
297\fBTCL_FILE_EVENTS\fR \-
298Process file events.
299.TP 27
300\fBTCL_TIMER_EVENTS\fR \-
301Process timer events.
302.TP 27
303\fBTCL_IDLE_EVENTS\fR \-
304Process idle callbacks.
305.TP 27
306\fBTCL_ALL_EVENTS\fR \-
307Process all kinds of events: equivalent to OR-ing together all of the
308above flags or specifying none of them.
309.TP 27
310\fBTCL_DONT_WAIT\fR \-
311Don't sleep: process only events that are ready at the time of the
312call.
313.LP
314If any of the flags \fBTCL_WINDOW_EVENTS\fR, \fBTCL_FILE_EVENTS\fR,
315\fBTCL_TIMER_EVENTS\fR, or \fBTCL_IDLE_EVENTS\fR is set, then the only
316events that will be considered are those for which flags are set.
317Setting none of these flags is equivalent to the value
318\fBTCL_ALL_EVENTS\fR, which causes all event types to be processed.
319If an application has defined additional event sources with
320\fBTcl_CreateEventSource\fR, then additional \fIflag\fR values
321may also be valid, depending on those event sources.
322.PP
323The \fBTCL_DONT_WAIT\fR flag causes \fBTcl_DoOneEvent\fR not to put
324the process to sleep: it will check for events but if none are found
325then it returns immediately with a return value of 0 to indicate
326that no work was done.
327\fBTcl_DoOneEvent\fR will also return 0 without doing anything if
328the only alternative is to block forever (this can happen, for example,
329if \fIflags\fR is \fBTCL_IDLE_EVENTS\fR and there are no
330\fBTcl_DoWhenIdle\fR callbacks pending, or if no event handlers or
331timer handlers exist).
332.PP
333\fBTcl_DoOneEvent\fR may be invoked recursively. For example,
334it is possible to invoke \fBTcl_DoOneEvent\fR recursively
335from a handler called by \fBTcl_DoOneEvent\fR. This sort
336of operation is useful in some modal situations, such
337as when a
338notification dialog has been popped up and an application wishes to
339wait for the user to click a button in the dialog before
340doing anything else.
341
342.SH KEYWORDS
343callback, event, handler, idle, timer