~attente/glib/gbytesicon

« back to all changes in this revision

Viewing changes to docs/reference/glib/html/glib-The-Main-Event-Loop.html

  • Committer: Package Import Robot
  • Author(s): Emilio Pozuelo Monfort
  • Date: 2012-11-28 14:38:35 UTC
  • mfrom: (172.1.6 experimental)
  • Revision ID: package-import@ubuntu.com-20121128143835-at37o4ozls05rkgf
Tags: 2.34.3-1
New upstream release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
277
277
<p>
278
278
</p>
279
279
<div class="refsect2">
280
 
<a name="idp17405696"></a><h3>Creating new source types</h3>
 
280
<a name="idp17306496"></a><h3>Creating new source types</h3>
281
281
<p>One of the unusual features of the <a class="link" href="glib-The-Main-Event-Loop.html#GMainLoop" title="GMainLoop"><span class="type">GMainLoop</span></a> functionality
282
282
is that new types of event source can be created and used in
283
283
addition to the builtin type of event source. A new event source
300
300
</p>
301
301
<hr>
302
302
<div class="refsect2">
303
 
<a name="idp17413952"></a><h3>Customizing the main loop iteration</h3>
 
303
<a name="idp17314752"></a><h3>Customizing the main loop iteration</h3>
304
304
<p>Single iterations of a <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> can be run with
305
305
<a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-iteration" title="g_main_context_iteration ()"><code class="function">g_main_context_iteration()</code></a>. In some cases, more detailed control
306
306
of exactly how the details of the main loop work is desired, for
1958
1958
<p>
1959
1959
Beware that libraries that predate this function may not correctly
1960
1960
handle being used from a thread with a thread-default context. Eg,
1961
 
see <code class="function">g_file_supports_thread_contexts()</code>.
 
1961
see <a href="./../gio/gio/GFile.html#g-file-supports-thread-contexts"><code class="function">g_file_supports_thread_contexts()</code></a>.
1962
1962
</p>
1963
1963
<div class="variablelist"><table border="0" class="variablelist">
1964
1964
<colgroup>
2833
2833
<a name="GSourceDummyMarshal"></a><h3>GSourceDummyMarshal ()</h3>
2834
2834
<pre class="programlisting"><span class="returnvalue">void</span>                (*GSourceDummyMarshal)              (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
2835
2835
<p>
2836
 
This is just a placeholder for <span class="type">GClosureMarshal</span>,
 
2836
This is just a placeholder for <a href="./../gobject/gobject/gobject-Closures.html#GClosureMarshal"><span class="type">GClosureMarshal</span></a>,
2837
2837
which cannot be used here for dependency reasons.
2838
2838
</p>
2839
2839
</div>
3172
3172
<span class="cbracket">{</span>
3173
3173
<span class="normal">  </span><span class="usertype">SomeWidget</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">self </span><span class="symbol">=</span><span class="normal"> data</span><span class="symbol">;</span>
3174
3174
<span class="normal">   </span>
3175
 
<span class="normal">  </span><span class="function"><a href="http://developer.gnome.org/gdk2/gdk3-Threads.html#GDK-THREADS-ENTER:CAPS">GDK_THREADS_ENTER</a></span><span class="normal"> </span><span class="symbol">();</span>
 
3175
<span class="normal">  </span><span class="function"><a href="http://library.gnome.org/devel/gdk3/gdk-Threads.html#GDK-THREADS-ENTER:CAPS">GDK_THREADS_ENTER</a></span><span class="normal"> </span><span class="symbol">();</span>
3176
3176
<span class="normal">  </span><span class="comment">/* do stuff with self */</span>
3177
3177
<span class="normal">  self</span><span class="symbol">-&gt;</span><span class="normal">idle_id </span><span class="symbol">=</span><span class="normal"> </span><span class="number">0</span><span class="symbol">;</span>
3178
 
<span class="normal">  </span><span class="function"><a href="http://developer.gnome.org/gdk2/gdk3-Threads.html#GDK-THREADS-LEAVE:CAPS">GDK_THREADS_LEAVE</a></span><span class="normal"> </span><span class="symbol">();</span>
 
3178
<span class="normal">  </span><span class="function"><a href="http://library.gnome.org/devel/gdk3/gdk-Threads.html#GDK-THREADS-LEAVE:CAPS">GDK_THREADS_LEAVE</a></span><span class="normal"> </span><span class="symbol">();</span>
3179
3179
<span class="normal">   </span>
3180
3180
<span class="normal">  </span><span class="keyword">return</span><span class="normal"> <a href="glib-The-Main-Event-Loop.html#G-SOURCE-REMOVE:CAPS">G_SOURCE_REMOVE</a></span><span class="symbol">;</span>
3181
3181
<span class="cbracket">}</span>
3194
3194
<span class="normal">  </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">self</span><span class="symbol">-&gt;</span><span class="normal">idle_id</span><span class="symbol">)</span>
3195
3195
<span class="normal">    </span><span class="function"><a href="glib-The-Main-Event-Loop.html#g-source-remove">g_source_remove</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">self</span><span class="symbol">-&gt;</span><span class="normal">idle_id</span><span class="symbol">);</span>
3196
3196
<span class="normal">   </span>
3197
 
<span class="normal">  </span><span class="function">G_OBJECT_CLASS</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">parent_class</span><span class="symbol">)-&gt;</span><span class="function">finalize</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">object</span><span class="symbol">);</span>
 
3197
<span class="normal">  </span><span class="function"><a href="./../gobject/gobject/gobject-The-Base-Object-Type.html#G-OBJECT-CLASS:CAPS">G_OBJECT_CLASS</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">parent_class</span><span class="symbol">)-&gt;</span><span class="function">finalize</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">object</span><span class="symbol">);</span>
3198
3198
<span class="cbracket">}</span></pre></td>
3199
3199
      </tr>
3200
3200
    </tbody>
3235
3235
<span class="cbracket">{</span>
3236
3236
<span class="normal">  </span><span class="usertype">SomeWidget</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">self </span><span class="symbol">=</span><span class="normal"> data</span><span class="symbol">;</span>
3237
3237
<span class="normal">  </span>
3238
 
<span class="normal">  </span><span class="function"><a href="http://developer.gnome.org/gdk2/gdk3-Threads.html#GDK-THREADS-ENTER:CAPS">GDK_THREADS_ENTER</a></span><span class="normal"> </span><span class="symbol">();</span>
 
3238
<span class="normal">  </span><span class="function"><a href="http://library.gnome.org/devel/gdk3/gdk-Threads.html#GDK-THREADS-ENTER:CAPS">GDK_THREADS_ENTER</a></span><span class="normal"> </span><span class="symbol">();</span>
3239
3239
<span class="normal">  </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(!</span><span class="function"><a href="glib-The-Main-Event-Loop.html#g-source-is-destroyed">g_source_is_destroyed</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="glib-The-Main-Event-Loop.html#g-main-current-source">g_main_current_source</a></span><span class="normal"> </span><span class="symbol">()))</span>
3240
3240
<span class="normal">    </span><span class="cbracket">{</span>
3241
3241
<span class="normal">      </span><span class="comment">/* do stuff with self */</span>
3242
3242
<span class="normal">    </span><span class="cbracket">}</span>
3243
 
<span class="normal">  </span><span class="function"><a href="http://developer.gnome.org/gdk2/gdk3-Threads.html#GDK-THREADS-LEAVE:CAPS">GDK_THREADS_LEAVE</a></span><span class="normal"> </span><span class="symbol">();</span>
 
3243
<span class="normal">  </span><span class="function"><a href="http://library.gnome.org/devel/gdk3/gdk-Threads.html#GDK-THREADS-LEAVE:CAPS">GDK_THREADS_LEAVE</a></span><span class="normal"> </span><span class="symbol">();</span>
3244
3244
<span class="normal">  </span>
3245
3245
<span class="normal">  </span><span class="keyword">return</span><span class="normal"> <a href="glib-Standard-Macros.html#FALSE:CAPS">FALSE</a></span><span class="symbol">;</span>
3246
3246
<span class="cbracket">}</span></pre></td>
3724
3724
</p>
3725
3725
<p>
3726
3726
If you don't need <em class="parameter"><code>child_source</code></em> to do anything on its own when it
3727
 
triggers, you can call <code class="function">g_source_set_dummy_callback()</code> on it to set a
 
3727
triggers, you can call <a href="./../gobject/gobject/gobject-Closures.html#g-source-set-dummy-callback"><code class="function">g_source_set_dummy_callback()</code></a> on it to set a
3728
3728
callback that does nothing (except return <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if appropriate).
3729
3729
</p>
3730
3730
<p>