1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
|
<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>glib Functions</title><link rel="stylesheet" href="style.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><link rel="home" href="index.html" title="PyGObject Reference Manual"><link rel="up" href="glib-class-reference.html" title="PyGlibClass Reference"><link rel="prev" href="class-glibmainloop.html" title="glib.MainLoop"><link rel="next" href="glib-constants.html" title="glib Constants"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">glib Functions</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="class-glibmainloop.html">Prev</a> </td><th width="60%" align="center">PyGlibClass Reference</th><td width="20%" align="right"> <a accesskey="n" href="glib-constants.html">Next</a></td></tr></table><hr></div><div class="refentry" title="glib Functions"><a name="glib-functions"></a><div class="titlepage"></div><div class="refnamediv"><h2>glib Functions</h2><p>glib Functions — miscellaneous functions</p></div><div class="refsect1" title="Synopsis"><a name="id583215"></a><h2>Synopsis</h2><pre class="programlisting">
<code class="methodsynopsis"> def <span class="methodname"><a class="link" href="glib-functions.html#function-glib--idle-add" title="glib.idle_add">glib.idle_add</a></span>(<span class="methodparam"><span class="parameter"><em class="parameter"><code>callback</code></em></span></span>, <span class="methodparam"><span class="parameter"><em class="parameter"><code>...</code></em></span></span>)</code><br><code class="methodsynopsis"> def <span class="methodname"><a class="link" href="glib-functions.html#function-glib--timeout-add" title="glib.timeout_add">glib.timeout_add</a></span>(<span class="methodparam"><span class="parameter"><em class="parameter"><code>interval</code></em></span></span>, <span class="methodparam"><span class="parameter"><em class="parameter"><code>callback</code></em></span></span>, <span class="methodparam"><span class="parameter"><em class="parameter"><code>...</code></em></span></span>)</code><br><code class="methodsynopsis"> def <span class="methodname"><a class="link" href="glib-functions.html#function-glib--timeout-add-seconds" title="glib.timeout_add_seconds">glib.timeout_add_seconds</a></span>(<span class="methodparam"><span class="parameter"><em class="parameter"><code>interval</code></em></span></span>, <span class="methodparam"><span class="parameter"><em class="parameter"><code>callback</code></em></span></span>, <span class="methodparam"><span class="parameter"><em class="parameter"><code>...</code></em></span></span>)</code><br><code class="methodsynopsis"> def <span class="methodname"><a class="link" href="glib-functions.html#function-glib--io-add-watch" title="glib.io_add_watch">glib.io_add_watch</a></span>(<span class="methodparam"><span class="parameter"><em class="parameter"><code>fd</code></em></span></span>, <span class="methodparam"><span class="parameter"><em class="parameter"><code>condition</code></em></span></span>, <span class="methodparam"><span class="parameter"><em class="parameter"><code>callback</code></em></span></span>, <span class="methodparam"><span class="parameter"><em class="parameter"><code>...</code></em></span></span>)</code><br><code class="methodsynopsis"> def <span class="methodname"><a class="link" href="glib-functions.html#function-glib--source-remove" title="glib.source_remove">glib.source_remove</a></span>(<span class="methodparam"><span class="parameter"><em class="parameter"><code>tag</code></em></span></span>)</code><br><code class="methodsynopsis"> def <span class="methodname"><a class="link" href="glib-functions.html#function-glib--main-context-default" title="glib.main_context_default">glib.main_context_default</a></span>(<span class="methodparam"></span>)</code><br><code class="methodsynopsis"> def <span class="methodname"><a class="link" href="glib-functions.html#function-glib--markup-escape-text" title="glib.markup_escape_text">glib.markup_escape_text</a></span>(<span class="methodparam"><span class="parameter"><strong class="parameter"><code>text</code></strong></span></span>)</code><br><code class="methodsynopsis"> def <span class="methodname"><a class="link" href="glib-functions.html#function-glib--child-watch-add" title="glib.child_watch_add">glib.child_watch_add</a></span>(<span class="methodparam"><span class="parameter"><strong class="parameter"><code>pid</code></strong></span></span>, <span class="methodparam"><span class="parameter"><strong class="parameter"><code>function</code></strong></span></span>, <span class="methodparam"><span class="parameter"><strong class="parameter"><code>data</code></strong></span><span class="initializer">=None</span></span>, <span class="methodparam"><span class="parameter"><strong class="parameter"><code>priority</code></strong></span><span class="initializer">=glib.PRIORITY_DEFAULT</span></span>)</code><br><code class="methodsynopsis"> def <span class="methodname"><a class="link" href="glib-functions.html#function-glib--spawn-async" title="glib.spawn_async">glib.spawn_async</a></span>(<span class="methodparam"><span class="parameter"><strong class="parameter"><code>argv</code></strong></span></span>, <span class="methodparam"><span class="parameter"><strong class="parameter"><code>envp</code></strong></span><span class="initializer">=None</span></span>, <span class="methodparam"><span class="parameter"><strong class="parameter"><code>working_directory</code></strong></span><span class="initializer">=None</span></span>, <span class="methodparam"><span class="parameter"><strong class="parameter"><code>flags</code></strong></span><span class="initializer">=0</span></span>, <span class="methodparam"><span class="parameter"><strong class="parameter"><code>child_setup</code></strong></span><span class="initializer">=None</span></span>, <span class="methodparam"><span class="parameter"><strong class="parameter"><code>user_data</code></strong></span><span class="initializer">=None</span></span>, <span class="methodparam"><span class="parameter"><strong class="parameter"><code>standard_input</code></strong></span><span class="initializer">=None</span></span>, <span class="methodparam"><span class="parameter"><strong class="parameter"><code>standard_output</code></strong></span><span class="initializer">=None</span></span>, <span class="methodparam"><span class="parameter"><strong class="parameter"><code>standard_error</code></strong></span><span class="initializer">=None</span></span>)</code><br><code class="methodsynopsis"> def <span class="methodname"><a class="link" href="glib-functions.html#function-glib--get-current-time" title="glib.get_current_time">glib.get_current_time</a></span>()</code><br><code class="methodsynopsis"> def <span class="methodname"><a class="link" href="glib-functions.html#function-glib--get-user-cache-dir" title="glib.get_user_cache_dir">glib.get_user_cache_dir</a></span>()</code><br><code class="methodsynopsis"> def <span class="methodname"><a class="link" href="glib-functions.html#function-glib--get-user-config-dir" title="glib.get_user_config_dir">glib.get_user_config_dir</a></span>()</code><br><code class="methodsynopsis"> def <span class="methodname"><a class="link" href="glib-functions.html#function-glib--get-user-data-dir" title="glib.get_user_data_dir">glib.get_user_data_dir</a></span>()</code><br><code class="methodsynopsis"> def <span class="methodname"><a class="link" href="glib-functions.html#function-glib--get-user-special-dir" title="glib.get_user_special_dir">glib.get_user_special_dir</a></span>(<span class="methodparam"><span class="parameter"><strong class="parameter"><code>directory</code></strong></span></span>)</code><br><code class="methodsynopsis"> def <span class="methodname"><a class="link" href="glib-functions.html#function-glib--main-depth" title="glib.main_depth">glib.main_depth</a></span>()</code><br><code class="methodsynopsis"> def <span class="methodname"><a class="link" href="glib-functions.html#function-glib--threads-init" title="glib.threads_init">glib.threads_init</a></span>()</code><br><code class="methodsynopsis"> def <span class="methodname"><a class="link" href="glib-functions.html#function-glib--filename-display-name" title="glib.filename_display_name">glib.filename_display_name</a></span>(<span class="methodparam"><span class="parameter"><em class="parameter"><code>filename</code></em></span></span>)</code><br><code class="methodsynopsis"> def <span class="methodname"><a class="link" href="glib-functions.html#function-glib--filename-display-basename" title="glib.filename_display_basename">glib.filename_display_basename</a></span>(<span class="methodparam"><span class="parameter"><em class="parameter"><code>filename</code></em></span></span>)</code><br><code class="methodsynopsis"> def <span class="methodname"><a class="link" href="glib-functions.html#function-glib--filename-from-utf8" title="glib.filename_from_utf8">glib.filename_from_utf8</a></span>(<span class="methodparam"><span class="parameter"><em class="parameter"><code>utf8string</code></em></span></span>)</code></pre></div><div class="refsect1" title="Description"><a name="id606086"></a><h2>Description</h2><p>These functions are part of the <code class="literal">PyGObject</code> glib
module but are not directly associated with a specific class.</p></div><div class="refsect1" title="Functions"><a name="id601396"></a><h2>Functions</h2><div class="refsect2" title="glib.idle_add"><a name="function-glib--idle-add"></a><h3>glib.idle_add</h3><pre class="programlisting"><code class="methodsynopsis"> def <span class="methodname">glib.idle_add</span>(<span class="methodparam"><span class="parameter"><em class="parameter"><code>callback</code></em></span></span>, <span class="methodparam"><span class="parameter"><em class="parameter"><code>...</code></em></span></span>)</code></pre><table border="0" width="100%" bgcolor="#FFECCE"><col align="left" valign="top" width="0*"><tbody><tr><td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td><td>a function to call when
<code class="literal">PyGTK</code> is idle</td></tr><tr><td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td><td>optionals arguments to be passed to
<em class="parameter"><code>callback</code></em></td></tr><tr><td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td><td>an integer ID</td></tr></tbody></table><p>The <code class="function">glib.idle_add</code>() function adds a
function (specified by <em class="parameter"><code>callback</code></em>) to be called
whenever there are no higher priority events pending to the default main
loop. The function is given the default idle priority,
<code class="literal">glib.PRIORITY_DEFAULT_IDLE</code>. Additional arguments to
pass to <em class="parameter"><code>callback</code></em> can be specified after
<em class="parameter"><code>callback</code></em>. The idle priority can be specified as a
keyword-value pair with the keyword "priority". If
<em class="parameter"><code>callback</code></em> returns <code class="literal">False</code> it is
automatically removed from the list of event sources and will not be called
again.</p></div><div class="refsect2" title="glib.timeout_add"><a name="function-glib--timeout-add"></a><h3>glib.timeout_add</h3><pre class="programlisting"><code class="methodsynopsis"> def <span class="methodname">glib.timeout_add</span>(<span class="methodparam"><span class="parameter"><em class="parameter"><code>interval</code></em></span></span>, <span class="methodparam"><span class="parameter"><em class="parameter"><code>callback</code></em></span></span>, <span class="methodparam"><span class="parameter"><em class="parameter"><code>...</code></em></span></span>)</code></pre><table border="0" width="100%" bgcolor="#FFECCE"><col align="left" valign="top" width="0*"><tbody><tr><td><p><span class="term"><em class="parameter"><code>interval</code></em> :</span></p></td><td>the time between calls to the function, in
milliseconds </td></tr><tr><td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td><td>the function to call</td></tr><tr><td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td><td>zero or more arguments that will be passed to
<em class="parameter"><code>callback</code></em></td></tr><tr><td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td><td>an integer ID of the event
source</td></tr></tbody></table><p>The <code class="function">glib.timeout_add</code>() function sets a
function (specified by <em class="parameter"><code>callback</code></em>) to be called at
regular intervals (specified by <em class="parameter"><code>interval</code></em>, with the
default priority, <code class="literal">glib.PRIORITY_DEFAULT</code>. Additional
arguments to pass to <em class="parameter"><code>callback</code></em> can be specified after
<em class="parameter"><code>callback</code></em>. The idle priority may be specified as a
keyword-value pair with the keyword "priority".</p><p>The function is called repeatedly until it returns
<code class="literal">False</code>, at which point the timeout is automatically
destroyed and the function will not be called again. The first call to the
function will be at the end of the first interval. Note that timeout
functions may be delayed, due to the processing of other event sources. Thus
they should not be relied on for precise timing. After each call to the
timeout function, the time of the next timeout is recalculated based on the
current time and the given interval (it does not try to 'catch up' time lost
in delays).</p></div><div class="refsect2" title="glib.timeout_add_seconds"><a name="function-glib--timeout-add-seconds"></a><h3>glib.timeout_add_seconds</h3><pre class="programlisting"><code class="methodsynopsis"> def <span class="methodname">glib.timeout_add_seconds</span>(<span class="methodparam"><span class="parameter"><em class="parameter"><code>interval</code></em></span></span>, <span class="methodparam"><span class="parameter"><em class="parameter"><code>callback</code></em></span></span>, <span class="methodparam"><span class="parameter"><em class="parameter"><code>...</code></em></span></span>)</code></pre><table border="0" width="100%" bgcolor="#FFECCE"><col align="left" valign="top" width="0*"><tbody><tr><td><p><span class="term"><em class="parameter"><code>interval</code></em> :</span></p></td><td>the time between calls to the function, in
seconds </td></tr><tr><td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td><td>the function to call</td></tr><tr><td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td><td>zero or more arguments that will be passed to
<em class="parameter"><code>callback</code></em></td></tr><tr><td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td><td>an integer ID of the event
source</td></tr></tbody></table><p>The <code class="function">glib.timeout_add_seconds</code>() is similar to
<code class="function">glib.timeout_add</code>() except
that <em class="parameter"><code>interval</code></em> must be specified in seconds, not
milliseconds, and the function should cause less CPU wakeups, which is important
for laptops' batteries.</p><p>Unlike <code class="function">glib.timeout_add</code>(), this function operates at
whole second granularity. The initial starting point of the timer is determined
by the implementation and the implementation is expected to group multiple timers
together so that they fire all at the same time. To allow this grouping, the
interval to the first timer is rounded and can deviate up to one second from the
specified interval. Subsequent timer iterations will generally run at the
specified interval.</p><p>Note that timeout functions may be delayed, due to the processing of other
event sources. Thus they should not be relied on for precise timing. After each
call to the timeout function, the time of the next timeout is recalculated based
on the current time and the given interval.</p><p>The grouping of timers to fire at the same time results in a more power and
CPU efficient behavior so if your timer is in multiples of seconds and you don't
require the first timer exactly one second from now, the use of
<code class="function">glib.timeout_add_seconds</code>() is preferred
over <code class="function">glib.timeout_add</code>().</p></div><div class="refsect2" title="glib.io_add_watch"><a name="function-glib--io-add-watch"></a><h3>glib.io_add_watch</h3><pre class="programlisting"><code class="methodsynopsis"> def <span class="methodname">glib.io_add_watch</span>(<span class="methodparam"><span class="parameter"><em class="parameter"><code>fd</code></em></span></span>, <span class="methodparam"><span class="parameter"><em class="parameter"><code>condition</code></em></span></span>, <span class="methodparam"><span class="parameter"><em class="parameter"><code>callback</code></em></span></span>, <span class="methodparam"><span class="parameter"><em class="parameter"><code>...</code></em></span></span>)</code></pre><table border="0" width="100%" bgcolor="#FFECCE"><col align="left" valign="top" width="0*"><tbody><tr><td><p><span class="term"><em class="parameter"><code>fd</code></em> :</span></p></td><td>a Python file object or an integer file
descriptor ID</td></tr><tr><td><p><span class="term"><em class="parameter"><code>condition</code></em> :</span></p></td><td>a condition mask</td></tr><tr><td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td><td>a function to call</td></tr><tr><td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td><td>additional arguments to pass to
<em class="parameter"><code>callback</code></em></td></tr><tr><td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td><td>an integer ID of the event source</td></tr></tbody></table><p>The <code class="function">glib.io_add_watch</code>() function
arranges for the file (specified by <em class="parameter"><code>fd</code></em>) to be
monitored by the main loop for the specified
<em class="parameter"><code>condition</code></em>. <em class="parameter"><code>fd</code></em> may be a Python
file object or an integer file descriptor. The value of condition is a
combination of:</p><table border="0" width="100%" bgcolor="#FFECCE"><col align="left" valign="top" width="0*"><tbody><tr><td><p><span class="term"><code class="literal">glib.IO_IN</code></span></p></td><td>There is data to read.</td></tr><tr><td><p><span class="term"><code class="literal">glib.IO_OUT</code></span></p></td><td>Data can be written (without blocking). </td></tr><tr><td><p><span class="term"><code class="literal">glib.IO_PRI</code></span></p></td><td>There is urgent data to read.</td></tr><tr><td><p><span class="term"><code class="literal">glib.IO_ERR</code></span></p></td><td>Error condition.</td></tr><tr><td><p><span class="term"><code class="literal">glib.IO_HUP</code></span></p></td><td>Hung up (the connection has been broken, usually for
pipes and sockets).</td></tr></tbody></table><p>Additional arguments to pass to <em class="parameter"><code>callback</code></em>
can be specified after <em class="parameter"><code>callback</code></em>. The idle priority
may be specified as a keyword-value pair with the keyword "priority". The
signature of the callback function is:</p><pre class="programlisting">
def callback(source, cb_condition, ...)
</pre><p>where <em class="parameter"><code>source</code></em> is
<em class="parameter"><code>fd</code></em>, the file descriptor;
<em class="parameter"><code>cb_condition</code></em> is the condition that triggered the
signal; and, <em class="parameter"><code>...</code></em> are the zero or more arguments that
were passed to the <code class="function">glib.io_add_watch</code>()
function.</p><p>If the callback function returns <code class="literal">False</code> it
will be automatically removed from the list of event sources and will not be
called again. If it returns <code class="literal">True</code> it will be called again
when the condition is matched.</p></div><div class="refsect2" title="glib.source_remove"><a name="function-glib--source-remove"></a><h3>glib.source_remove</h3><pre class="programlisting"><code class="methodsynopsis"> def <span class="methodname">glib.source_remove</span>(<span class="methodparam"><span class="parameter"><em class="parameter"><code>tag</code></em></span></span>)</code></pre><table border="0" width="100%" bgcolor="#FFECCE"><col align="left" valign="top" width="0*"><tbody><tr><td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td><td>an integer ID</td></tr><tr><td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td><td><code class="literal">True</code> if the event source was
removed</td></tr></tbody></table><p>The <code class="function">glib.source_remove</code>() function
removes the event source specified by tag (as returned by the <a class="link" href="glib-functions.html#function-glib--idle-add" title="glib.idle_add"><code class="function">glib.idle_add</code>()</a>,
<a class="link" href="glib-functions.html#function-glib--timeout-add" title="glib.timeout_add"><code class="function">glib.timeout_add</code></a>()
and <a class="link" href="glib-functions.html#function-glib--io-add-watch" title="glib.io_add_watch"><code class="function">glib.io_add_watch</code>()</a>
functions)</p></div><div class="refsect2" title="glib.main_context_default"><a name="function-glib--main-context-default"></a><h3>glib.main_context_default</h3><pre class="programlisting"><code class="methodsynopsis"> def <span class="methodname">glib.main_context_default</span>(<span class="methodparam"></span>)</code></pre><table border="0" width="100%" bgcolor="#FFECCE"><col align="left" valign="top" width="0*"><tbody><tr><td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td><td>the default glib.MainContext
object</td></tr></tbody></table><p>The <code class="function">glib.main_context_default</code>() function
returns the default glib.MainContext object.</p></div><div class="refsect2" title="glib.markup_escape_text"><a name="function-glib--markup-escape-text"></a><h3>glib.markup_escape_text</h3><pre class="programlisting"><code class="methodsynopsis"> def <span class="methodname">glib.markup_escape_text</span>(<span class="methodparam"><span class="parameter"><em class="parameter"><code>text</code></em></span></span>)</code></pre><table border="0" width="100%" bgcolor="#FFECCE"><col align="left" valign="top" width="0*"><tbody><tr><td><p><span class="term"><em class="parameter"><code>text</code></em> :</span></p></td><td>the UTF-8 string to be
escaped</td></tr><tr><td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td><td>the escaped text</td></tr></tbody></table><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>This function is available in PyGTK 2.8 and above.</p></div><p>The <code class="function">glib.markup_escape_text</code>() function
escapes the string specified by <em class="parameter"><code>text</code></em> so that the
markup parser will parse it verbatim. Less than, greater than, ampersand,
etc. are replaced with the corresponding entities. This function would
typically be used when writing out a file to be parsed with the markup
parser.</p><p>Note that this function doesn't protect whitespace and line
endings from being processed according to the XML rules for normalization of
line endings and attribute values.</p></div><div class="refsect2" title="glib.child_watch_add"><a name="function-glib--child-watch-add"></a><h3>glib.child_watch_add</h3><pre class="programlisting"><code class="methodsynopsis"> def <span class="methodname">glib.child_watch_add</span>(<span class="methodparam"><span class="parameter"><strong class="parameter"><code>pid</code></strong></span></span>, <span class="methodparam"><span class="parameter"><strong class="parameter"><code>function</code></strong></span></span>, <span class="methodparam"><span class="parameter"><strong class="parameter"><code>data</code></strong></span><span class="initializer">=None</span></span>, <span class="methodparam"><span class="parameter"><strong class="parameter"><code>priority</code></strong></span><span class="initializer">=glib.PRIORITY_DEFAULT</span></span>)</code></pre><table border="0" width="100%" bgcolor="#FFECCE"><col align="left" valign="top" width="0*"><tbody><tr><td><p><span class="term"><strong class="parameter"><code>pid</code></strong> :</span></p></td><td>process id of a child process to watch</td></tr><tr><td><p><span class="term"><strong class="parameter"><code>function</code></strong> :</span></p></td><td>the function to call</td></tr><tr><td><p><span class="term"><strong class="parameter"><code>data</code></strong> :</span></p></td><td>the optional data to pass to
<em class="parameter"><code>function</code></em></td></tr><tr><td><p><span class="term"><strong class="parameter"><code>priority</code></strong> :</span></p></td><td>the priority of the idle source - one of the
<a class="xref" href="glib-constants.html#glib-priority-constants" title="Glib Priority Constants">Glib Priority Constants</a></td></tr><tr><td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td><td>the id of event source.</td></tr></tbody></table><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>This function is available in PyGTK 2.6 and above.</p></div><p>The <code class="function">glib.child_watch_add</code>() function sets
the function specified by <em class="parameter"><code>function</code></em> to be called with
the user data specified by <em class="parameter"><code>data</code></em> when the child
indicated by <em class="parameter"><code>pid</code></em> exits. The signature for the
callback is:</p><pre class="programlisting">
def callback(pid, condition, user_data)
</pre><p>where <em class="parameter"><code>pid</code></em> is is the child process id,
<em class="parameter"><code>condition</code></em> is the status information about the child
process and <em class="parameter"><code>user_data</code></em> is <em class="parameter"><code>data</code></em>
PyGTK supports only a single callback per process id.</p></div><div class="refsect2" title="glib.spawn_async"><a name="function-glib--spawn-async"></a><h3>glib.spawn_async</h3><pre class="programlisting"><code class="methodsynopsis"> def <span class="methodname">glib.spawn_async</span>(<span class="methodparam"><span class="parameter"><strong class="parameter"><code>argv</code></strong></span></span>, <span class="methodparam"><span class="parameter"><strong class="parameter"><code>envp</code></strong></span><span class="initializer">=None</span></span>, <span class="methodparam"><span class="parameter"><strong class="parameter"><code>working_directory</code></strong></span><span class="initializer">=None</span></span>, <span class="methodparam"><span class="parameter"><strong class="parameter"><code>flags</code></strong></span><span class="initializer">=0</span></span>, <span class="methodparam"><span class="parameter"><strong class="parameter"><code>child_setup</code></strong></span><span class="initializer">=None</span></span>, <span class="methodparam"><span class="parameter"><strong class="parameter"><code>user_data</code></strong></span><span class="initializer">=None</span></span>, <span class="methodparam"><span class="parameter"><strong class="parameter"><code>standard_input</code></strong></span><span class="initializer">=None</span></span>, <span class="methodparam"><span class="parameter"><strong class="parameter"><code>standard_output</code></strong></span><span class="initializer">=None</span></span>, <span class="methodparam"><span class="parameter"><strong class="parameter"><code>standard_error</code></strong></span><span class="initializer">=None</span></span>)</code></pre><table border="0" width="100%" bgcolor="#FFECCE"><col align="left" valign="top" width="0*"><tbody><tr><td><p><span class="term"><strong class="parameter"><code>argv</code></strong> :</span></p></td><td>a sequence of strings containing the arguments
of the child process</td></tr><tr><td><p><span class="term"><strong class="parameter"><code>envp</code></strong> :</span></p></td><td>the child's environment or
<code class="literal">None</code> to inherit the parent's
environment.</td></tr><tr><td><p><span class="term"><strong class="parameter"><code>working_directory</code></strong> :</span></p></td><td>the child's current working directory, or
<code class="literal">None</code> to inherit parent's</td></tr><tr><td><p><span class="term"><strong class="parameter"><code>flags</code></strong> :</span></p></td><td>flags from the <a class="xref" href="glib-constants.html#glib-spawn-flag-constants" title="Glib Spawn Flag Constants">Glib Spawn Flag Constants</a>.</td></tr><tr><td><p><span class="term"><strong class="parameter"><code>child_setup</code></strong> :</span></p></td><td>a function to run in the child just before
calling <code class="function">exec</code>()</td></tr><tr><td><p><span class="term"><strong class="parameter"><code>user_data</code></strong> :</span></p></td><td>the user data for the
<em class="parameter"><code>child_setup</code></em> function</td></tr><tr><td><p><span class="term"><strong class="parameter"><code>standard_input</code></strong> :</span></p></td><td>if <code class="literal">True</code> return the file
descriptor for the child's stdin</td></tr><tr><td><p><span class="term"><strong class="parameter"><code>standard_output</code></strong> :</span></p></td><td>if <code class="literal">True</code> return the file
descriptor for the child's stdout</td></tr><tr><td><p><span class="term"><strong class="parameter"><code>standard_error</code></strong> :</span></p></td><td>if <code class="literal">True</code> return the file
descriptor for the child's stderr</td></tr><tr><td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td><td>a 4-tuple containing the child's process id and
the stdin, stdout and stderr file descriptor integers.</td></tr></tbody></table><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>This function is available in PyGTK 2.6 and above.</p></div><p>The <code class="function">glib.spawn_async</code>() function executes
a child program asynchronously (your program will not block waiting for the
child to exit). The child program is specified by the only argument that
must be provided, <em class="parameter"><code>argv</code></em>. <em class="parameter"><code>argv</code></em>
should be a sequence of strings, to be passed as the argument vector for the
child. The first string in <em class="parameter"><code>argv</code></em> is of course the name
of the program to execute. By default, the name of the program must be a
full path; the <code class="envar">PATH</code> shell variable will only be searched if
you pass the <code class="literal">glib.SPAWN_SEARCH_PATH</code> flag in
<em class="parameter"><code>flags</code></em>. The function returns a 4-tuple containing the
child's process id and the file descriptors for the child's stdin, stdout
and stderr. The stdin, stdout and stderr file descriptors are returned only
ofthe corresponding <em class="parameter"><code>standard_input</code></em>,
<em class="parameter"><code>standard_output</code></em> or
<em class="parameter"><code>standard_error</code></em> params are
<code class="literal">True</code>.</p><p>On Windows, the low-level child process creation API
(<code class="function">CreateProcess</code>()) doesn't use argument vectors, but a
command line. The C runtime library's <code class="function">spawn*</code>() family
of functions (which <a class="link" href="glib-functions.html#function-glib--spawn-async" title="glib.spawn_async"><code class="function">glib.spawn_async</code>()</a>
eventually calls) paste the argument vector elements into a command line,
and the C runtime startup code does a corresponding reconstruction of an
argument vector from the command line, to be passed to
<code class="function">main</code>(). Complications arise when you have argument
vector elements that contain spaces of double quotes. The
<code class="function">spawn*</code>() functions don't do any quoting or escaping,
but on the other hand the startup code does do unquoting and unescaping in
order to enable receiving arguments with embedded spaces or double
quotes. To work around this asymmetry, the <a class="link" href="glib-functions.html#function-glib--spawn-async" title="glib.spawn_async"><code class="function">glib.spawn_async</code>()</a>
function will do quoting and escaping on argument vector elements that need
it before calling the C runtime <code class="function">spawn</code>()
function.</p><p><em class="parameter"><code>envp</code></em> is a sequence of strings, where each
string has the form <code class="literal">KEY=VALUE</code>. This will become the
child's environment. If <em class="parameter"><code>envp</code></em> is
<em class="parameter"><code>None</code></em> or not specified, the child inherits its
parent's environment.</p><p><em class="parameter"><code>flags</code></em> should be the bitwise
<code class="literal">OR</code> of the <a class="xref" href="glib-constants.html#glib-spawn-flag-constants" title="Glib Spawn Flag Constants">Glib Spawn Flag Constants</a> you want to affect the
function's behaviour. The <code class="literal">glib.SPAWN_DO_NOT_REAP_CHILD</code>
flag means that the child will not automatically be reaped; you must use a
GChildWatch source to be notified about the death of the child
process. Eventually you must call g_spawn_close_pid() on the child_pid, in
order to free resources which may be associated with the child process. (On
Unix, using a GChildWatch source is equivalent to calling
<code class="function">waitpid</code>() or handling the <code class="literal">SIGCHLD</code>
signal manually. On Windows, calling g_spawn_close_pid() is equivalent to
calling <code class="function">CloseHandle</code>() on the process handle
returned).</p><p><code class="literal">glib.SPAWN_LEAVE_DESCRIPTORS_OPEN</code> means
that the parent's open file descriptors will be inherited by the child;
otherwise all descriptors except stdin/stdout/stderr will be closed before
calling <code class="function">exec</code>() in the
child. <code class="literal">glib.SPAWN_SEARCH_PATH</code> means that
<em class="parameter"><code>argv</code></em>[0] need not be an absolute path, it will be
looked for in the user's
<code class="envar">PATH</code>. <code class="literal">glib.SPAWN_STDOUT_TO_DEV_NULL</code>
means that the child's standard output will be discarded, instead of going
to the same location as the parent's standard output. If you use this flag,
<em class="parameter"><code>standard_output</code></em> must be
<code class="literal">None</code>. <code class="literal">glib.SPAWN_STDERR_TO_DEV_NULL</code>
means that the child's standard error will be discarded, instead of going to
the same location as the parent's standard error. If you use this flag,
<em class="parameter"><code>standard_error</code></em> must be
<code class="literal">None</code>. <code class="literal">glib.SPAWN_CHILD_INHERITS_STDIN</code>
means that the child will inherit the parent's standard input (by default,
the child's standard input is attached to
<code class="filename">/dev/null</code>). If you use this flag,
<em class="parameter"><code>standard_input</code></em> must be
<code class="literal">None</code>. <code class="literal">glib.SPAWN_FILE_AND_ARGV_ZERO</code>
means that the first element of <em class="parameter"><code>argv</code></em> is the file to
execute, while the remaining elements are the actual argument vector to pass
to the file. Normally the <a class="link" href="glib-functions.html#function-glib--spawn-async" title="glib.spawn_async"><code class="function">glib.spawn_async</code>()</a>
function uses <em class="parameter"><code>argv</code></em>[0] as the file to execute, and
passes all of <em class="parameter"><code>argv</code></em> to the child.</p><p><em class="parameter"><code>child_setup</code></em> and
<em class="parameter"><code>user_data</code></em> are a function and user data. On POSIX
platforms, the function is called in the child after GLib has performed all
the setup it plans to perform (including creating pipes, closing file
descriptors, etc.) but before calling <code class="function">exec</code>(). That is,
<em class="parameter"><code>child_setup</code></em> is called just before calling
<code class="function">exec</code>() in the child. Obviously actions taken in this
function will only affect the child, not the parent. On Windows, there is no
separate <code class="function">fork</code>() and <code class="function">exec</code>()
functionality. Child processes are created and run right away with one API
call,
<code class="function">CreateProcess</code>(). <em class="parameter"><code>child_setup</code></em> is
called in the parent process just before creating the child process. You
should carefully consider what you do in <em class="parameter"><code>child_setup</code></em>
if you intend your software to be portable to Windows.</p><p>The returned child process id can be used to send signals to the
child, or to wait for the child if you specified the
<code class="literal">glib.SPAWN_DO_NOT_REAP_CHILD</code> flag. On Windows, child
pid will be returned only if you specified the
<code class="literal">glib.SPAWN_DO_NOT_REAP_CHILD</code> flag.</p><p>The caller of the <a class="link" href="glib-functions.html#function-glib--spawn-async" title="glib.spawn_async"><code class="function">glib.spawn_async</code>()</a>
must close any returned file descriptors when they are no longer in
use.</p><p>If <em class="parameter"><code>standard_input</code></em> is
<code class="literal">None</code>, the child's standard input is attached to
<code class="filename">/dev/null</code> unless
<code class="literal">glib.SPAWN_CHILD_INHERITS_STDIN</code> is set.</p><p>If <em class="parameter"><code>standard_error</code></em> is
<code class="literal">None</code>, the child's standard error goes to the same
location as the parent's standard error unless
<code class="literal">glib.SPAWN_STDERR_TO_DEV_NULL</code> is set.</p><p>If <em class="parameter"><code>standard_output</code></em> is
<code class="literal">None</code>, the child's standard output goes to the same
location as the parent's standard output unless
<code class="literal">glib.SPAWN_STDOUT_TO_DEV_NULL</code> is set.</p><p>If an error occurs, the glib.GError exception will be
raised.</p></div><div class="refsect2" title="glib.get_current_time"><a name="function-glib--get-current-time"></a><h3>glib.get_current_time</h3><pre class="programlisting"><code class="methodsynopsis"> def <span class="methodname">glib.get_current_time</span>()</code></pre><table border="0" width="100%" bgcolor="#FFECCE"><col align="left" valign="top" width="0*"><tbody><tr><td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td><td>the current time as the number of seconds and
microseconds from the epoch.</td></tr></tbody></table><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>This function is available in PyGTK 2.8 and above.</p></div><p>The <code class="function">glib.get_current_time</code>() function
reurns the current time of day as the number of seconds and microseconds
from the epoch.</p></div><div class="refsect2" title="glib.get_user_cache_dir"><a name="function-glib--get-user-cache-dir"></a><h3>glib.get_user_cache_dir</h3><pre class="programlisting"><code class="methodsynopsis"> def <span class="methodname">glib.get_user_cache_dir</span>()</code></pre><table border="0" width="100%" bgcolor="#FFECCE"><col align="left" valign="top" width="0*"><tbody><tr><td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td><td>
a strings with a path to user's cache directory.
</td></tr></tbody></table><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>This function is available in PyGObject 2.18 and above.</p></div><p>Returns a base directory in which to store non-essential,
cached data specific to particular user.</p><p>On UNIX platforms this is determined using the mechanisms
described in the
<a class="ulink" href="http://www.freedesktop.org/Standards/basedir-spec" target="_top">XDG
Base Directory Specification</a>.</p></div><div class="refsect2" title="glib.get_user_config_dir"><a name="function-glib--get-user-config-dir"></a><h3>glib.get_user_config_dir</h3><pre class="programlisting"><code class="methodsynopsis"> def <span class="methodname">glib.get_user_config_dir</span>()</code></pre><table border="0" width="100%" bgcolor="#FFECCE"><col align="left" valign="top" width="0*"><tbody><tr><td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td><td>
a strings with a path to user's configuration directory.
</td></tr></tbody></table><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>This function is available in PyGObject 2.18 and above.</p></div><p>Returns a base directory in which to store user-specific
application configuration information such as user preferences
and settings. </p><p>On UNIX platforms this is determined using the mechanisms
described in the
<a class="ulink" href="http://www.freedesktop.org/Standards/basedir-spec" target="_top">XDG
Base Directory Specification</a>.</p></div><div class="refsect2" title="glib.get_user_data_dir"><a name="function-glib--get-user-data-dir"></a><h3>glib.get_user_data_dir</h3><pre class="programlisting"><code class="methodsynopsis"> def <span class="methodname">glib.get_user_data_dir</span>()</code></pre><table border="0" width="100%" bgcolor="#FFECCE"><col align="left" valign="top" width="0*"><tbody><tr><td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td><td>
a strings with a path to user's data directory.
</td></tr></tbody></table><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>This function is available in PyGObject 2.18 and above.</p></div><p>Returns a base directory in which to access application
data such as icons that is customized for a particular
user</p><p>On UNIX platforms this is determined using the mechanisms
described in the
<a class="ulink" href="http://www.freedesktop.org/Standards/basedir-spec" target="_top">XDG
Base Directory Specification</a>.</p></div><div class="refsect2" title="glib.get_user_special_dir"><a name="function-glib--get-user-special-dir"></a><h3>glib.get_user_special_dir</h3><pre class="programlisting"><code class="methodsynopsis"> def <span class="methodname">glib.get_user_special_dir</span>(<span class="methodparam"><span class="parameter"><em class="parameter"><code>directory</code></em></span></span>)</code></pre><table border="0" width="100%" bgcolor="#FFECCE"><col align="left" valign="top" width="0*"><tbody><tr><td><p><span class="term"><span class="emphasis"><em>directory</em></span> :</span></p></td><td>
the logical id of special directory,
see <a class="link" href="glib-constants.html#glib-user-directory-constants" title="Glib User Directory Constants">User
Directory constants</a> for the list of supported
values
</td></tr><tr><td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td><td>
a strings with a path to the requested directory.
</td></tr></tbody></table><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>This function is available in PyGObject 2.18 and above.</p></div><p>Returns the full path of a special directory using its
logical id.</p><p>On Unix this is done using the XDG special user
directories. For compatibility with existing practise,
<a class="link" href="glib-constants.html#glib-user-directory-constants" title="Glib User Directory Constants">glib.USER_DIRECTORY_DESKTOP</a>
falls back to <code class="literal">$HOME/Desktop</code> when XDG
special user directories have not been set up.</p><p>Depending on the platform, the user might be able to
change the path of the special directory without requiring the
session to restart; GLib will not reflect any change once the
special directories are loaded.</p></div><div class="refsect2" title="glib.main_depth"><a name="function-glib--main-depth"></a><h3>glib.main_depth</h3><pre class="programlisting"><code class="methodsynopsis"> def <span class="methodname">glib.main_depth</span>()</code></pre><table border="0" width="100%" bgcolor="#FFECCE"><col align="left" valign="top" width="0*"><tbody><tr><td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td><td>the depth of the stack of calls to the main
context.</td></tr></tbody></table><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>This function is available in PyGTK 2.8 and above.</p></div><p>The <code class="function">main_depth</code>() function returns the depth
of the stack of calls in the main context. That is, when called from the
toplevel, it gives 0. When called from within a callback from the <a class="link" href="class-glibmaincontext.html#method-glibmaincontext--iteration" title="glib.MainContext.iteration"><code class="methodname">glib.MainContext.iteration</code>()</a>
method (or the <a class="link" href="class-glibmainloop.html#method-glibmainloop--run" title="glib.MainLoop.run"><code class="methodname">glib.MainLoop.run</code>()</a>
method, etc.) it returns 1. When called from within a callback to a
recursive call to the <a class="link" href="class-glibmaincontext.html#method-glibmaincontext--iteration" title="glib.MainContext.iteration"><code class="methodname">glib.MainContext.iteration</code>()</a>
method), it returns 2. And so forth.</p></div><div class="refsect2" title="glib.threads_init"><a name="function-glib--threads-init"></a><h3>glib.threads_init</h3><pre class="programlisting"><code class="methodsynopsis"> def <span class="methodname">glib.threads_init</span>(<span class="methodparam"><span class="parameter"><em class="parameter"><code></code></em></span></span>)</code></pre><table border="0" width="100%" bgcolor="#FFECCE"><col align="left" valign="top" width="0*"><tbody><tr><td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td><td></td></tr></tbody></table><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>This function is available in PyGTK 2.4 and above.</p></div><p>The <code class="function">threads_init</code>() function initializes the
the use of Python threading in the glib module. This function is
different than the <PYGTKDOCLINK HREF="function-gdk--threads-init"><code class="function">gtk.gdk.threads_init</code>()</PYGTKDOCLINK>
function as that function also initializes the gdk threads.</p></div><div class="refsect2" title="glib.signal_accumulator_true_handled"><a name="function-glib--signal-accumulator-true-handled"></a><h3>glib.signal_accumulator_true_handled</h3><pre class="programlisting"><code class="methodsynopsis"> def <span class="methodname">glib.signal_accumulator_true_handled</span>()</code></pre><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>This function is available in PyGTK 2.8 and above.</p></div><p>The <code class="function">signal_accumulator_true_handled</code>()
function is only used as accumulator argument when registering
signals.</p></div><div class="refsect2" title="glib.filename_display_name"><a name="function-glib--filename-display-name"></a><h3>glib.filename_display_name</h3><pre class="programlisting"><code class="methodsynopsis"> def <span class="methodname">glib.filename_display_name</span>(<span class="methodparam"><span class="parameter"><em class="parameter"><code>filename</code></em></span></span>)</code></pre><table border="0" width="100%" bgcolor="#FFECCE"><col align="left" valign="top" width="0*"><tbody><tr><td><p><span class="term"><span class="emphasis"><em>filename</em></span> :</span></p></td><td>a pathname in the file name
encoding</td></tr><tr><td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td><td>an UTF8 rendition of
<em class="parameter"><code>filename</code></em>.</td></tr></tbody></table><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>This function is available in PyGTK 2.10 and above.</p></div><p>The <code class="function">filename_display_name</code>() function
converts a filename into a valid UTF-8 string. The conversion is not
necessarily reversible, so you should keep the original around and use
the return value of this function only for display purposes. Unlike
g_filename_to_utf8(), the result is guaranteed to be non-None even if
the filename actually isn't in the file name encoding.</p><p>If you know the whole pathname of the file you should use the
<a class="link" href="glib-functions.html#function-glib--filename-display-basename" title="glib.filename_display_basename"><code class="function">glib.filename_display_basename</code>()</a>
function, since that allows location-based translation of
filenames.</p></div><div class="refsect2" title="glib.filename_display_basename"><a name="function-glib--filename-display-basename"></a><h3>glib.filename_display_basename</h3><pre class="programlisting"><code class="methodsynopsis"> def <span class="methodname">glib.filename_display_basename</span>(<span class="methodparam"><span class="parameter"><em class="parameter"><code>filename</code></em></span></span>)</code></pre><table border="0" width="100%" bgcolor="#FFECCE"><col align="left" valign="top" width="0*"><tbody><tr><td><p><span class="term"><span class="emphasis"><em>filename</em></span> :</span></p></td><td>an absolute pathname in the file name
encoding</td></tr><tr><td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td><td>an UTF8 rendition of
<em class="parameter"><code>filename</code></em>.</td></tr></tbody></table><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>This function is available in PyGTK 2.10 and above.</p></div><p>The <code class="function">filename_display_basename</code>() function
returns the display basename for the particular filename, guaranteed
to be valid UTF-8. The display name might not be identical to the
filename, for instance there might be problems converting it to UTF-8,
and some files can be translated in the display.</p><p>You must pass the whole absolute pathname to this functions so
that translation of well known locations can be done.</p><p>This function is preferred over the <a class="link" href="glib-functions.html#function-glib--filename-display-name" title="glib.filename_display_name"><code class="function">glib.filename_display_name</code>()</a>
function if you know the whole path, as it allows translation.</p></div><div class="refsect2" title="glib.filename_from_utf8"><a name="function-glib--filename-from-utf8"></a><h3>glib.filename_from_utf8</h3><pre class="programlisting"><code class="methodsynopsis"> def <span class="methodname">glib.filename_from_utf8</span>(<span class="methodparam"><span class="parameter"><em class="parameter"><code>utf8string</code></em></span></span>)</code></pre><table border="0" width="100%" bgcolor="#FFECCE"><col align="left" valign="top" width="0*"><tbody><tr><td><p><span class="term"><span class="emphasis"><em>utf8string</em></span> :</span></p></td><td>a UTF-8 encoded string.</td></tr><tr><td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td><td>a filename encoded in the GLib filename
encoding.</td></tr></tbody></table><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>This function is available in PyGTK 2.10 and above.</p></div><p>The <code class="function">filename_from_utf8</code>() function converts
a string from UTF-8 to the encoding GLib uses for filenames. Note that
on Windows GLib uses UTF-8 for filenames.</p></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="class-glibmainloop.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="glib-class-reference.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="glib-constants.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">glib.MainLoop </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> glib Constants</td></tr></table></div></body></html>
|