OSDN Git Service

FIRST REPOSITORY
[eos/hostdependOTHERS.git] / SGI / util / SGI / man / man3 / Tcl_DoOneEvent.3
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 '\" SCCS: @(#) DoOneEvent.3 1.6 97/05/09 18:12:05
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 '\" SCCS: @(#) man.macros 1.9 97/08/22 18:50:59
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 .ie !"\\$3"" \{\
85 .ta \\n()Au \\n()Bu
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 4c 8c 12c
212 .ft B
213 ..
214 '\"     # SE - end of list of standard options
215 .de SE
216 .fi
217 .ft R
218 .LP
219 See 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
226 Command-Line Name:      \\fB\\$1\\fR
227 Database Name:  \\fB\\$2\\fR
228 Database 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
249 Tcl_DoOneEvent \- wait for events and invoke event handlers
250 .SH SYNOPSIS
251 .nf
252 \fB#include <tcl.h>\fR
253 .sp
254 int
255 \fBTcl_DoOneEvent\fR(\fIflags\fR)
256 .SH ARGUMENTS
257 .AS int flags
258 .AP int flags in
259 This parameter is normally zero.  It may be an OR-ed combination
260 of any of the following flag bits:  
261 TCL_WINDOW_EVENTS,
262 TCL_FILE_EVENTS, TCL_TIMER_EVENTS, TCL_IDLE_EVENTS, TCL_ALL_EVENTS, or
263 TCL_DONT_WAIT.
264 .BE
265
266 .SH DESCRIPTION
267 .PP
268 This procedure is the entry point to Tcl's event loop; it is responsible for
269 waiting for events and dispatching event handlers created with
270 procedures such as \fBTk_CreateEventHandler\fR, \fBTcl_CreateFileHandler\fR,
271 \fBTcl_CreateTimerHandler\fR, and \fBTcl_DoWhenIdle\fR.
272 \fBTcl_DoOneEvent\fR checks to see if
273 events are already present on the Tcl event queue; if so,
274 it calls the handler(s) for the first (oldest) event, removes it from
275 the queue, and returns.
276 If there are no events ready to be handled, then \fBTcl_DoOneEvent\fR
277 checks for new events from all possible sources.
278 If any are found, it puts all of them on Tcl's event queue, calls
279 handlers for the first event on the queue, and returns.
280 If no events are found, \fBTcl_DoOneEvent\fR checks for \fBTcl_DoWhenIdle\fR
281 callbacks; if any are found, it invokes all of them and returns.
282 Finally, if no events or idle callbacks have been found, then
283 \fBTcl_DoOneEvent\fR sleeps until an event occurs; then it adds any 
284 new events to the Tcl event queue, calls handlers for the first event,
285 and returns.
286 The normal return value is 1 to signify that some event
287 was processed (see below for other alternatives).
288 .PP
289 If the \fIflags\fR argument to \fBTcl_DoOneEvent\fR is non-zero,
290 it 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 \-
295 Process window system events.
296 .TP 27
297 \fBTCL_FILE_EVENTS\fR \-
298 Process file events.
299 .TP 27
300 \fBTCL_TIMER_EVENTS\fR \-
301 Process timer events.
302 .TP 27
303 \fBTCL_IDLE_EVENTS\fR \-
304 Process idle callbacks.
305 .TP 27
306 \fBTCL_ALL_EVENTS\fR \-
307 Process all kinds of events:  equivalent to OR-ing together all of the
308 above flags or specifying none of them.
309 .TP 27
310 \fBTCL_DONT_WAIT\fR \-
311 Don't sleep:  process only events that are ready at the time of the
312 call.
313 .LP
314 If 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
316 events that will be considered are those for which flags are set.
317 Setting none of these flags is equivalent to the value
318 \fBTCL_ALL_EVENTS\fR, which causes all event types to be processed.
319 If an application has defined additional event sources with
320 \fBTcl_CreateEventSource\fR, then additional \fIflag\fR values
321 may also be valid, depending on those event sources.
322 .PP
323 The \fBTCL_DONT_WAIT\fR flag causes \fBTcl_DoOneEvent\fR not to put
324 the process to sleep:  it will check for events but if none are found
325 then it returns immediately with a return value of 0 to indicate
326 that no work was done.
327 \fBTcl_DoOneEvent\fR will also return 0 without doing anything if
328 the only alternative is to block forever (this can happen, for example,
329 if \fIflags\fR is \fBTCL_IDLE_EVENTS\fR and there are no
330 \fBTcl_DoWhenIdle\fR callbacks pending, or if no event handlers or
331 timer handlers exist).
332 .PP
333 \fBTcl_DoOneEvent\fR may be invoked recursively.  For example,
334 it is possible to invoke \fBTcl_DoOneEvent\fR recursively
335 from a handler called by \fBTcl_DoOneEvent\fR.  This sort
336 of operation is useful in some modal situations, such
337 as when a
338 notification dialog has been popped up and an application wishes to
339 wait for the user to click a button in the dialog before
340 doing anything else.
341
342 .SH KEYWORDS
343 callback, event, handler, idle, timer