summaryrefslogtreecommitdiff
path: root/gtk+-mingw/share/gtk-doc/html/gtk3/gtk-question-index.html
diff options
context:
space:
mode:
authorLeo Tenenbaum <pommicket@gmail.com>2018-08-20 21:12:06 -0400
committerLeo Tenenbaum <pommicket@gmail.com>2018-08-20 21:12:06 -0400
commit63e87c2d0c9d263f14c77b68f85c67d46ece82a9 (patch)
tree6260365cbf7d24f37d27669e8538227fcb72e243 /gtk+-mingw/share/gtk-doc/html/gtk3/gtk-question-index.html
parenta4460f6d9453bbd7e584937686449cef3e19f052 (diff)
Removed gtk+ docsHEADmaster
Diffstat (limited to 'gtk+-mingw/share/gtk-doc/html/gtk3/gtk-question-index.html')
-rw-r--r--gtk+-mingw/share/gtk-doc/html/gtk3/gtk-question-index.html1390
1 files changed, 0 insertions, 1390 deletions
diff --git a/gtk+-mingw/share/gtk-doc/html/gtk3/gtk-question-index.html b/gtk+-mingw/share/gtk-doc/html/gtk3/gtk-question-index.html
deleted file mode 100644
index e8662bf..0000000
--- a/gtk+-mingw/share/gtk-doc/html/gtk3/gtk-question-index.html
+++ /dev/null
@@ -1,1390 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Common Questions</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
-<link rel="home" href="index.html" title="GTK+ 3 Reference Manual">
-<link rel="up" href="gtk.html" title="Part I. GTK+ Overview">
-<link rel="prev" href="gtk-resources.html" title="Mailing lists and bug reports">
-<link rel="next" href="chap-drawing-model.html" title="The GTK+ Drawing Model">
-<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="gtk-resources.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="gtk.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GTK+ 3 Reference Manual</th>
-<td><a accesskey="n" href="chap-drawing-model.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="refentry">
-<a name="gtk-question-index"></a><div class="titlepage"></div>
-<div class="refnamediv"><table width="100%"><tr>
-<td valign="top">
-<h2><span class="refentrytitle">Common Questions</span></h2>
-<p>Common Questions —
-Find answers to common questions in the GTK+ manual
-</p>
-</td>
-<td valign="top" align="right"></td>
-</tr></table></div>
-<div class="refsect1">
-<a name="id510184"></a><h2>Questions and Answers</h2>
-<p>
-This is an "index" of the reference manual organized by common "How do
-I..." questions. If you aren't sure which documentation to read for
-the question you have, this list is a good place to start.
-</p>
-<div class="qandaset">
-<a name="id504814"></a><table border="0" width="100%" summary="Q and A Set">
-<col align="left" width="1%">
-<col>
-<tbody>
-<tr class="qandadiv"><td align="left" valign="top" colspan="2"><h5 class="title">
-<a name="id507125"></a>1. General</h5></td></tr>
-<tr class="question">
-<td align="left" valign="top">
-<a name="id480356"></a><a name="id487302"></a><p><b>1.1.</b></p>
-</td>
-<td align="left" valign="top"><p>
-How do I get started with GTK+?
-</p></td>
-</tr>
-<tr class="answer">
-<td align="left" valign="top"></td>
-<td align="left" valign="top"><p>
-The GTK+ <a class="ulink" href="http://www.gtk.org" target="_top">website</a> offers some
-<a class="ulink" href="http://www.gtk.org/documentation" target="_top">tutorials</a> and other
-documentation (most of it about GTK+ 2.x, but mostly still applicable).
-More documentation ranging from whitepapers to online books can be found at
-the <a class="ulink" href="http://developer.gnome.org" target="_top">GNOME developer's site</a>.
-After studying these materials you should be well prepared to come back to
-this reference manual for details.
-</p></td>
-</tr>
-<tr class="question">
-<td align="left" valign="top">
-<a name="id525960"></a><a name="id514386"></a><p><b>1.2.</b></p>
-</td>
-<td align="left" valign="top"><p>
-Where can I get help with GTK+, submit a bug report, or make a feature
-request?
-</p></td>
-</tr>
-<tr class="answer">
-<td align="left" valign="top"></td>
-<td align="left" valign="top"><p>
-See the <a class="link" href="gtk-resources.html" title="Mailing lists and bug reports">documentation on this topic</a>.
-</p></td>
-</tr>
-<tr class="question">
-<td align="left" valign="top">
-<a name="id496528"></a><a name="id516181"></a><p><b>1.3.</b></p>
-</td>
-<td align="left" valign="top"><p>How do I port from one GTK+
-version to another?</p></td>
-</tr>
-<tr class="answer">
-<td align="left" valign="top"></td>
-<td align="left" valign="top">
-<p>
-See <a class="xref" href="gtk-migrating-2-to-3.html" title="Migrating from GTK+ 2.x to GTK+ 3"><i>Migrating from GTK+ 2.x to GTK+ 3</i></a>.
-You may also find useful information in the documentation for
-specific widgets and functions.
-</p>
-<p>
-If you have a question not covered in the manual, feel free to
-ask on the mailing lists and please <a class="ulink" href="http://bugzilla.gnome.org" target="_top">file a bug report</a> against the
-documentation.
-</p>
-</td>
-</tr>
-<tr class="question">
-<td align="left" valign="top">
-<a name="id517268"></a><a name="id517270"></a><p><b>1.4.</b></p>
-</td>
-<td align="left" valign="top"><p>
-How does memory management work in GTK+? Should I free data returned
-from functions?
-</p></td>
-</tr>
-<tr class="answer">
-<td align="left" valign="top"></td>
-<td align="left" valign="top">
-<p>
-See the documentation for <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> and <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned"><span class="type">GInitiallyUnowned</span></a>. For <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> note
-specifically <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-ref"><code class="function">g_object_ref()</code></a> and <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>. <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned"><span class="type">GInitiallyUnowned</span></a> is a
-subclass of <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> so the same points apply, except that it has a "floating"
-state (explained in its documentation).
-</p>
-<p>
-For strings returned from functions, they will be declared "const"
-if they should not be freed. Non-const strings should be
-freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>. Arrays follow the same rule. If you find an
-undocumented exception to the rules, please report a bug to <a class="ulink" href="http://bugzilla.gnome.org" target="_top">http://bugzilla.gnome.org</a>.
-</p>
-</td>
-</tr>
-<tr class="question">
-<td align="left" valign="top">
-<a name="id496669"></a><a name="id496672"></a><p><b>1.5.</b></p>
-</td>
-<td align="left" valign="top"><p>
-Why does my program leak memory, if I destroy a widget immediately
-after creating it ?
-</p></td>
-</tr>
-<tr class="answer">
-<td align="left" valign="top"></td>
-<td align="left" valign="top">
-<p>
-If <span class="structname">GtkFoo</span> isn't a toplevel window, then
-</p>
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1
-2</pre></td>
- <td class="listing_code"><pre class="programlisting"><span class="normal">foo </span><span class="symbol">=</span><span class="normal"> </span><span class="function">gtk_foo_new</span><span class="normal"> </span><span class="symbol">();</span>
-<span class="function"><a href="GtkWidget.html#gtk-widget-destroy">gtk_widget_destroy</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">foo</span><span class="symbol">);</span></pre></td>
- </tr>
- </tbody>
- </table>
-</div>
-
-<p>
-is a memory leak, because no one assumed the initial floating
-reference. If you are using a widget and you aren't immediately
-packing it into a container, then you probably want standard
-reference counting, not floating reference counting.
-</p>
-<p>
-To to get this, you must acquire a reference to the widget and drop the
-floating reference (<span class="quote">“<span class="quote">ref and sink</span>”</span> in GTK+ parlance) after
-creating it:
-</p>
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1
-2</pre></td>
- <td class="listing_code"><pre class="programlisting"><span class="normal">foo </span><span class="symbol">=</span><span class="normal"> </span><span class="function">gtk_foo_new</span><span class="normal"> </span><span class="symbol">();</span>
-<span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-ref-sink">g_object_ref_sink</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">foo</span><span class="symbol">);</span></pre></td>
- </tr>
- </tbody>
- </table>
-</div>
-
-<p>
-When you want to get rid of the widget, you must call <a class="link" href="GtkWidget.html#gtk-widget-destroy" title="gtk_widget_destroy ()"><code class="function">gtk_widget_destroy()</code></a>
-to break any external connections to the widget before dropping your
-reference:
-</p>
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1
-2</pre></td>
- <td class="listing_code"><pre class="programlisting"><span class="function"><a href="GtkWidget.html#gtk-widget-destroy">gtk_widget_destroy</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">foo</span><span class="symbol">);</span>
-<span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref">g_object_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">foo</span><span class="symbol">);</span></pre></td>
- </tr>
- </tbody>
- </table>
-</div>
-
-<p>
-When you immediately add a widget to a container, it takes care of
-assuming the initial floating reference and you don't have to worry
-about reference counting at all ... just call <a class="link" href="GtkWidget.html#gtk-widget-destroy" title="gtk_widget_destroy ()"><code class="function">gtk_widget_destroy()</code></a>
-to get rid of the widget.
-</p>
-</td>
-</tr>
-<tr class="question">
-<td align="left" valign="top">
-<a name="id481985"></a><a name="id481987"></a><p><b>1.6.</b></p>
-</td>
-<td align="left" valign="top"><p>
-How do I use GTK+ with threads?
-</p></td>
-</tr>
-<tr class="answer">
-<td align="left" valign="top"></td>
-<td align="left" valign="top"><p>
-This is covered in the <GTKDOCLINK HREF="gdk-Threads">GDK threads
-documentation</GTKDOCLINK>. See also the <a href="http://library.gnome.org/devel/glib/unstable/glib-Threads.html">GThread</a>
-documentation for portable threading primitives.
-</p></td>
-</tr>
-<tr class="question">
-<td align="left" valign="top">
-<a name="id493799"></a><a name="id493801"></a><p><b>1.7.</b></p>
-</td>
-<td align="left" valign="top"><p>
-How do I internationalize a GTK+ program?
-</p></td>
-</tr>
-<tr class="answer">
-<td align="left" valign="top"></td>
-<td align="left" valign="top">
-<p>
-Most people use <a class="ulink" href="http://www.gnu.org/software/gettext/" target="_top">GNU
-gettext</a>, already required in order to install GLib. On a UNIX
-or Linux system with gettext installed, type <code class="literal">info gettext</code>
-to read the documentation.
-</p>
-<p>
-The short checklist on how to use gettext is: call <code class="function">bindtextdomain()</code> so
-gettext can find the files containing your translations, call <code class="function">textdomain()</code>
-to set the default translation domain, call <code class="function">bind_textdomain_codeset()</code> to
-request that all translated strings are returned in UTF-8, then call
-<code class="function">gettext()</code> to look up each string to be translated in the default domain.
-</p>
-<p>
-<code class="filename">gi18n.h</code> provides the following shorthand macros for
-convenience.
-Conventionally, people define macros as follows for convenience:
-</p>
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1
-2
-3</pre></td>
- <td class="listing_code"><pre class="programlisting"><span class="preproc">#define</span><span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-I18N.html#gettext-macro">_</a></span><span class="symbol">(</span><span class="normal">x</span><span class="symbol">)</span><span class="normal"> </span><span class="function">gettext</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">x</span><span class="symbol">)</span>
-<span class="preproc">#define</span><span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-I18N.html#N-:CAPS">N_</a></span><span class="symbol">(</span><span class="normal">x</span><span class="symbol">)</span><span class="normal"> x</span>
-<span class="preproc">#define</span><span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-I18N.html#C-:CAPS">C_</a></span><span class="symbol">(</span><span class="normal">ctx</span><span class="symbol">,</span><span class="normal">x</span><span class="symbol">)</span><span class="normal"> </span><span class="function">pgettext</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">ctx</span><span class="symbol">,</span><span class="normal"> x</span><span class="symbol">)</span></pre></td>
- </tr>
- </tbody>
- </table>
-</div>
-
-<p>
-You use <a href="http://library.gnome.org/devel/glib/unstable/glib-I18N.html#N-:CAPS"><code class="function">N_()</code></a> (N stands for no-op) to mark a string for translation in
-a location where a function call to <code class="function">gettext()</code> is not allowed, such as
-in an array initializer.
-You eventually have to call <code class="function">gettext()</code> on the string to actually fetch
-the translation. <a href="http://library.gnome.org/devel/glib/unstable/glib-I18N.html#gettext-macro"><code class="function">_()</code></a> both marks the string for translation and actually
-translates it.
-The <a href="http://library.gnome.org/devel/glib/unstable/glib-I18N.html#C-:CAPS"><code class="function">C_()</code></a> macro (C stands for context) adds an additional context to
-the string that is marked for translation, which can help to disambiguate
-short strings that might need different translations in different
-parts of your program.
-</p>
-<p>
-Code using these macros ends up looking like this:
-</p>
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13</pre></td>
- <td class="listing_code"><pre class="programlisting"><span class="preproc">#include</span><span class="normal"> </span><span class="string">&lt;gi18n.h&gt;</span>
-
-<span class="keyword">static</span><span class="normal"> </span><span class="keyword">const</span><span class="normal"> </span><span class="type">char</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">global_variable </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-I18N.html#N-:CAPS">N_</a></span><span class="symbol">(</span><span class="string">"Translate this string"</span><span class="symbol">);</span>
-
-<span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
-<span class="function">make_widgets</span><span class="normal"> </span><span class="symbol">(</span><span class="type">void</span><span class="symbol">)</span>
-<span class="cbracket">{</span>
-<span class="normal"> </span><span class="usertype">GtkWidget</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">label1</span><span class="symbol">;</span>
-<span class="normal"> </span><span class="usertype">GtkWidget</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">label2</span><span class="symbol">;</span>
-
-<span class="normal"> label1 </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="GtkLabel.html#gtk-label-new">gtk_label_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-I18N.html#gettext-macro">_</a></span><span class="symbol">(</span><span class="string">"Another string to translate"</span><span class="symbol">));</span>
-<span class="normal"> label2 </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="GtkLabel.html#gtk-label-new">gtk_label_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-I18N.html#gettext-macro">_</a></span><span class="symbol">(</span><span class="normal">global_variable</span><span class="symbol">));</span>
-<span class="symbol">...</span></pre></td>
- </tr>
- </tbody>
- </table>
-</div>
-
-<p>
-</p>
-<p>
-Libraries using gettext should use <code class="function">dgettext()</code> instead of <code class="function">gettext()</code>, which
-allows them to specify the translation domain each time they ask for a
-translation. Libraries should also avoid calling <code class="function">textdomain()</code>, since
-they will be specifying the domain instead of using the default.
-</p>
-<p>
-With the convention that the macro <code class="literal">GETTEXT_PACKAGE</code> is
-defined to hold your libraries translation domain,
-<code class="filename">gi18n-lib.h</code> can be included to provide
-the following convenience:
-</p>
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1</pre></td>
- <td class="listing_code"><pre class="programlisting"><span class="preproc">#define</span><span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-I18N.html#gettext-macro">_</a></span><span class="symbol">(</span><span class="normal">x</span><span class="symbol">)</span><span class="normal"> </span><span class="function">dgettext</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">GETTEXT_PACKAGE</span><span class="symbol">,</span><span class="normal"> x</span><span class="symbol">)</span></pre></td>
- </tr>
- </tbody>
- </table>
-</div>
-
-<p>
-</p>
-</td>
-</tr>
-<tr class="question">
-<td align="left" valign="top">
-<a name="id521100"></a><a name="id521102"></a><p><b>1.8.</b></p>
-</td>
-<td align="left" valign="top"><p>
-How do I use non-ASCII characters in GTK+ programs ?
-</p></td>
-</tr>
-<tr class="answer">
-<td align="left" valign="top"></td>
-<td align="left" valign="top">
-<p>
-GTK+ uses <a class="ulink" href="http://www.unicode.org" target="_top">Unicode</a> (more exactly
-UTF-8) for all text. UTF-8 encodes each Unicode codepoint as a sequence of
-one to six bytes and has a number of nice properties which make it a good
-choice for working with Unicode text in C programs:
-</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem"><p>
-ASCII characters are encoded by their familiar ASCII codepoints.
-</p></li>
-<li class="listitem"><p>
-ASCII characters never appear as part of any other character.
-</p></li>
-<li class="listitem"><p>
-The zero byte doesn't occur as part of a character, so that UTF-8 strings
-can be manipulated with the usual C library functions for handling
-zero-terminated strings.
-</p></li>
-</ul></div>
-<p>
-More information about Unicode and UTF-8 can be found in the
-<a class="ulink" href="http://www.cl.cam.ac.uk/~mgk25/unicode.html" target="_top">UTF-8 and Unicode
-FAQ for Unix/Linux</a>.
-GLib provides functions for converting strings between UTF-8 and other
-encodings, see <a href="http://library.gnome.org/devel/glib/unstable/glib-Character-Set-Conversion.html#g-locale-to-utf8"><code class="function">g_locale_to_utf8()</code></a> and <a href="http://library.gnome.org/devel/glib/unstable/glib-Character-Set-Conversion.html#g-convert"><code class="function">g_convert()</code></a>.
-</p>
-<p>
-Text coming from external sources (e.g. files or user input), has to be
-converted to UTF-8 before being handed over to GTK+. The following example
-writes the content of a IS0-8859-1 encoded text file to
-<code class="literal">stdout</code>:
-</p>
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18</pre></td>
- <td class="listing_code"><pre class="programlisting"><span class="usertype">gchar</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">text</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">utf8_text</span><span class="symbol">;</span>
-<span class="usertype">gsize</span><span class="normal"> length</span><span class="symbol">;</span>
-<span class="usertype">GError</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">error </span><span class="symbol">=</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">;</span>
-
-<span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-File-Utilities.html#g-file-get-contents">g_file_get_contents</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">filename</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">text</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">length</span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">))</span>
-<span class="normal"> </span><span class="cbracket">{</span>
-<span class="normal"> utf8_text </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Character-Set-Conversion.html#g-convert">g_convert</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">text</span><span class="symbol">,</span><span class="normal"> length</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"UTF-8"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"ISO-8859-1"</span><span class="symbol">,</span>
-<span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">error</span><span class="symbol">);</span>
-<span class="normal"> </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">error </span><span class="symbol">!=</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">)</span>
-<span class="normal"> </span><span class="cbracket">{</span>
-<span class="normal"> </span><span class="function">fprintf</span><span class="normal"> </span><span class="symbol">(</span><span class="string">"Couldn't convert file %s to UTF-8</span><span class="specialchar">\n</span><span class="string">"</span><span class="symbol">,</span><span class="normal"> filename</span><span class="symbol">);</span>
-<span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#g-error-free">g_error_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">error</span><span class="symbol">);</span>
-<span class="normal"> </span><span class="cbracket">}</span>
-<span class="normal"> </span><span class="keyword">else</span>
-<span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Warnings-and-Assertions.html#g-print">g_print</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">utf8_text</span><span class="symbol">);</span>
-<span class="normal"> </span><span class="cbracket">}</span>
-<span class="keyword">else</span>
-<span class="normal"> </span><span class="function">fprintf</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">stderr</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"Unable to read file %s</span><span class="specialchar">\n</span><span class="string">"</span><span class="symbol">,</span><span class="normal"> filename</span><span class="symbol">);</span></pre></td>
- </tr>
- </tbody>
- </table>
-</div>
-
-<p>
-</p>
-<p>
-For string literals in the source code, there are several alternatives for
-handling non-ASCII content:
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term">direct UTF-8</span></p></td>
-<td><p>
-If your editor and compiler are capable of handling UTF-8 encoded sources,
-it is very convenient to simply use UTF-8 for string literals, since it
-allows you to edit the strings in "wysiwyg". Note that choosing this option
-may reduce the portability of your code.
-</p></td>
-</tr>
-<tr>
-<td><p><span class="term">escaped UTF-8</span></p></td>
-<td><p>
-Even if your toolchain can't handle UTF-8 directly, you can still encode
-string literals in UTF-8 by using octal or hexadecimal escapes like
-<code class="literal">\212</code> or <code class="literal">\xa8</code> to encode each byte.
-This is portable, but modifying the escaped strings is not very convenient.
-Be careful when mixing hexadecimal escapes with ordinary text;
-<code class="literal">"\xa8abcd"</code> is a string of length 1 !
-</p></td>
-</tr>
-<tr>
-<td><p><span class="term">runtime conversion</span></p></td>
-<td><p>
-If the string literals can be represented in an encoding which your
-toolchain can handle (e.g. IS0-8859-1), you can write your source files
-in that encoding and use <a href="http://library.gnome.org/devel/glib/unstable/glib-Character-Set-Conversion.html#g-convert"><code class="function">g_convert()</code></a> to convert the strings to UTF-8 at
-runtime. Note that this has some runtime overhead, so you may want to move
-the conversion out of inner loops.
-</p></td>
-</tr>
-</tbody>
-</table></div>
-<p>
-Here is an example showing the three approaches using the copyright sign
-© which has Unicode and ISO-8859-1 codepoint 169 and is represented
-in UTF-8 by the two bytes 194, 169, or <code class="literal">"\302\251"</code> as
-a string literal:
-</p>
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1
-2
-3
-4
-5</pre></td>
- <td class="listing_code"><pre class="programlisting"><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Warnings-and-Assertions.html#g-print">g_print</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"direct UTF-8: ©"</span><span class="symbol">);</span>
-<span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Warnings-and-Assertions.html#g-print">g_print</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"escaped UTF-8: </span><span class="specialchar">\3</span><span class="string">02</span><span class="specialchar">\2</span><span class="string">51"</span><span class="symbol">);</span>
-<span class="normal">text </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Character-Set-Conversion.html#g-convert">g_convert</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"runtime conversion: ©"</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">-</span><span class="number">1</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"ISO-8859-1"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"UTF-8"</span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">);</span>
-<span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Warnings-and-Assertions.html#g-print">g_print</a></span><span class="symbol">(</span><span class="normal">text</span><span class="symbol">);</span>
-<span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free">g_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">text</span><span class="symbol">);</span></pre></td>
- </tr>
- </tbody>
- </table>
-</div>
-
-<p>
-</p>
-<p>
-If you are using <code class="function">gettext()</code> to localize your application, you need to
-call <code class="function">bind_textdomain_codeset()</code> to ensure that translated strings are
-returned in UTF-8 encoding.
-</p>
-</td>
-</tr>
-<tr class="question">
-<td align="left" valign="top">
-<a name="id521306"></a><a name="id521309"></a><p><b>1.9.</b></p>
-</td>
-<td align="left" valign="top"><p>
-How do I use GTK+ with C++?
-</p></td>
-</tr>
-<tr class="answer">
-<td align="left" valign="top"></td>
-<td align="left" valign="top">
-<p>
-There are two ways to approach this. The GTK+ header files use the subset
-of C that's also valid C++, so you can simply use the normal GTK+ API
-in a C++ program. Alternatively, you can use a "C++ binding"
-such as <a class="ulink" href="http://gtkmm.sourceforge.net/" target="_top">gtkmm</a>
-which provides a native C++ API.
-</p>
-<p>
-When using GTK+ directly, keep in mind that only functions can be
-connected to signals, not methods. So you will need to use global
-functions or "static" class functions for signal connections.
-</p>
-<p>
-Another common issue when using GTK+ directly is that
-C++ will not implicitly convert an integer to an enumeration.
-This comes up when using bitfields; in C you can write the following
-code:
-</p>
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1
-2</pre></td>
- <td class="listing_code"><pre class="programlisting"><span class="function"><a href="http://developer.gnome.org/gdk/gdk3-Windows.html#gdk-window-set-events">gdk_window_set_events</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">gdk_window</span><span class="symbol">,</span>
-<span class="normal"> <a href="http://developer.gnome.org/gdk/gdk3-Events.html#GDK-BUTTON-PRESS-MASK:CAPS">GDK_BUTTON_PRESS_MASK</a> </span><span class="symbol">|</span><span class="normal"> <a href="http://developer.gnome.org/gdk/gdk3-Events.html#GDK-BUTTON-RELEASE-MASK:CAPS">GDK_BUTTON_RELEASE_MASK</a></span><span class="symbol">);</span></pre></td>
- </tr>
- </tbody>
- </table>
-</div>
-
-<p>
-while in C++ you must write:
-</p>
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1
-2</pre></td>
- <td class="listing_code"><pre class="programlisting"><span class="function"><a href="http://developer.gnome.org/gdk/gdk3-Windows.html#gdk-window-set-events">gdk_window_set_events</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">gdk_window</span><span class="symbol">,</span>
-<span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="http://developer.gnome.org/gdk/gdk3-Events.html#GdkEventMask">GdkEventMask</a></span><span class="symbol">)</span><span class="normal"> <a href="http://developer.gnome.org/gdk/gdk3-Events.html#GDK-BUTTON-PRESS-MASK:CAPS">GDK_BUTTON_PRESS_MASK</a> </span><span class="symbol">|</span><span class="normal"> <a href="http://developer.gnome.org/gdk/gdk3-Events.html#GDK-BUTTON-RELEASE-MASK:CAPS">GDK_BUTTON_RELEASE_MASK</a></span><span class="symbol">);</span></pre></td>
- </tr>
- </tbody>
- </table>
-</div>
-
-<p>
-There are very few functions that require this cast, however.
-</p>
-</td>
-</tr>
-<tr class="question">
-<td align="left" valign="top">
-<a name="id521362"></a><a name="id521365"></a><p><b>1.10.</b></p>
-</td>
-<td align="left" valign="top"><p>
-How do I use GTK+ with other non-C languages?
-</p></td>
-</tr>
-<tr class="answer">
-<td align="left" valign="top"></td>
-<td align="left" valign="top"><p>
-See the <a class="ulink" href="http://www.gtk.org/bindings.html" target="_top">list of language
-bindings</a> on <a class="ulink" href="http://www.gtk.org" target="_top">http://www.gtk.org</a>.
-</p></td>
-</tr>
-<tr class="question">
-<td align="left" valign="top">
-<a name="id521390"></a><a name="id521393"></a><p><b>1.11.</b></p>
-</td>
-<td align="left" valign="top"><p>
-How do I load an image or animation from a file?
-</p></td>
-</tr>
-<tr class="answer">
-<td align="left" valign="top"></td>
-<td align="left" valign="top">
-<p>
-To load an image file straight into a display widget, use
-<a class="link" href="GtkImage.html#gtk-image-new-from-file" title="gtk_image_new_from_file ()"><code class="function">gtk_image_new_from_file()</code></a> <sup>[<a name="id521412" href="#ftn.id521412" class="footnote">1</a>]</sup>.
-To load an image for another purpose, use <a href="http://library.gnome.org/devel/gdk-pixbuf/unstable/gdk-pixbuf-File-Loading.html#gdk-pixbuf-new-from-file"><code class="function">gdk_pixbuf_new_from_file()</code></a>. To i
-load an animation, use <a href="http://library.gnome.org/devel/gdk-pixbuf/unstable/gdk-pixbuf-Animations.html#gdk-pixbuf-animation-new-from-file"><code class="function">gdk_pixbuf_animation_new_from_file()</code></a>.
-<a href="http://library.gnome.org/devel/gdk-pixbuf/unstable/gdk-pixbuf-Animations.html#gdk-pixbuf-animation-new-from-file"><code class="function">gdk_pixbuf_animation_new_from_file()</code></a> can also load non-animated images, so
-use it in combination with <a href="http://library.gnome.org/devel/gdk-pixbuf/unstable/gdk-pixbuf-Animations.html#gdk-pixbuf-animation-is-static-image"><code class="function">gdk_pixbuf_animation_is_static_image()</code></a> to load a
-file of unknown type.
-</p>
-<p>
-To load an image or animation file asynchronously (without blocking), use
-<a href="http://library.gnome.org/devel/gdk-pixbuf/unstable/GdkPixbufLoader.html"><span class="type">GdkPixbufLoader</span></a>.
-</p>
-</td>
-</tr>
-<tr class="question">
-<td align="left" valign="top">
-<a name="id521499"></a><a name="id521501"></a><p><b>1.12.</b></p>
-</td>
-<td align="left" valign="top"><p>
-How do I draw text ?
-</p></td>
-</tr>
-<tr class="answer">
-<td align="left" valign="top"></td>
-<td align="left" valign="top">
-<p>
-To draw a piece of text, use a Pango layout and <a href="/home/mclasen/gnome/share/gtk-doc/html/pango/pango-Cairo-Rendering.html#pango-cairo-show-layout"><code class="function">pango_cairo_show_layout()</code></a>.
-</p>
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1
-2
-3
-4
-5
-6</pre></td>
- <td class="listing_code"><pre class="programlisting"><span class="normal">layout </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="GtkWidget.html#gtk-widget-create-pango-layout">gtk_widget_create_pango_layout</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">widget</span><span class="symbol">,</span><span class="normal"> text</span><span class="symbol">);</span>
-<span class="normal">fontdesc </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="/home/mclasen/gnome/share/gtk-doc/html/pango/pango-Fonts.html#pango-font-description-from-string">pango_font_description_from_string</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"Luxi Mono 12"</span><span class="symbol">);</span>
-<span class="function"><a href="/home/mclasen/gnome/share/gtk-doc/html/pango/pango-Layout-Objects.html#pango-layout-set-font-description">pango_layout_set_font_description</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">layout</span><span class="symbol">,</span><span class="normal"> fontdesc</span><span class="symbol">);</span>
-<span class="function"><a href="/home/mclasen/gnome/share/gtk-doc/html/pango/pango-Cairo-Rendering.html#pango-cairo-show-layout">pango_cairo_show_layout</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">cr</span><span class="symbol">,</span><span class="normal"> layout</span><span class="symbol">);</span>
-<span class="function"><a href="/home/mclasen/gnome/share/gtk-doc/html/pango/pango-Fonts.html#pango-font-description-free">pango_font_description_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">fontdesc</span><span class="symbol">);</span>
-<span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref">g_object_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">layout</span><span class="symbol">);</span></pre></td>
- </tr>
- </tbody>
- </table>
-</div>
-
-<p>
-</p>
-<p>
-See also the
-<a class="ulink" href="http://developer.gnome.org/pango/stable/pango-Cairo-Rendering.html" target="_top">Cairo Rendering</a>
-section of <a class="ulink" href="http://developer.gnome.org/pango/stable/" target="_top">Pango manual</a>.
-</p>
-</td>
-</tr>
-<tr class="question">
-<td align="left" valign="top">
-<a name="id521552"></a><a name="id521554"></a><p><b>1.13.</b></p>
-</td>
-<td align="left" valign="top"><p>
-How do I measure the size of a piece of text ?
-</p></td>
-</tr>
-<tr class="answer">
-<td align="left" valign="top"></td>
-<td align="left" valign="top">
-<p>
-To obtain the size of a piece of text, use a Pango layout and
-<a href="/home/mclasen/gnome/share/gtk-doc/html/pango/pango-Layout-Objects.html#pango-layout-get-pixel-size"><code class="function">pango_layout_get_pixel_size()</code></a>, using code like the following:
-</p>
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1
-2
-3
-4
-5
-6</pre></td>
- <td class="listing_code"><pre class="programlisting"><span class="normal">layout </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="GtkWidget.html#gtk-widget-create-pango-layout">gtk_widget_create_pango_layout</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">widget</span><span class="symbol">,</span><span class="normal"> text</span><span class="symbol">);</span>
-<span class="normal">fontdesc </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="/home/mclasen/gnome/share/gtk-doc/html/pango/pango-Fonts.html#pango-font-description-from-string">pango_font_description_from_string</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"Luxi Mono 12"</span><span class="symbol">);</span>
-<span class="function"><a href="/home/mclasen/gnome/share/gtk-doc/html/pango/pango-Layout-Objects.html#pango-layout-set-font-description">pango_layout_set_font_description</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">layout</span><span class="symbol">,</span><span class="normal"> fontdesc</span><span class="symbol">);</span>
-<span class="function"><a href="/home/mclasen/gnome/share/gtk-doc/html/pango/pango-Layout-Objects.html#pango-layout-get-pixel-size">pango_layout_get_pixel_size</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">layout</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">width</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">height</span><span class="symbol">);</span>
-<span class="function"><a href="/home/mclasen/gnome/share/gtk-doc/html/pango/pango-Fonts.html#pango-font-description-free">pango_font_description_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">fontdesc</span><span class="symbol">);</span>
-<span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref">g_object_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">layout</span><span class="symbol">);</span></pre></td>
- </tr>
- </tbody>
- </table>
-</div>
-
-<p>
-</p>
-<p>
-See also the
-<a class="ulink" href="http://developer.gnome.org/pango/stable/pango-Layout-Objects.html" target="_top">Layout Objects</a>
-section of <a class="ulink" href="http://developer.gnome.org/pango/stable/" target="_top">Pango manual</a>.
-</p>
-</td>
-</tr>
-<tr class="question">
-<td align="left" valign="top">
-<a name="id521608"></a><a name="id521611"></a><p><b>1.14.</b></p>
-</td>
-<td align="left" valign="top"><p>
-Why are types not registered if I use their <code class="literal">GTK_TYPE_BLAH</code>
-macro ?
-</p></td>
-</tr>
-<tr class="answer">
-<td align="left" valign="top"></td>
-<td align="left" valign="top">
-<p>
-The <code class="literal">GTK_TYPE_BLAH</code> macros are defined as calls to
-<code class="literal"><code class="function">gtk_blah_get_type()</code></code>, and the <code class="literal"><code class="function">_get_type()</code></code> i
-functions are declared as <a href="http://library.gnome.org/devel/glib/unstable/glib-Miscellaneous-Macros.html#G-GNUC-CONST:CAPS"><code class="literal">G_GNUC_CONST</code></a> which allows the compiler to optimize
-the call away if it appears that the value is not being used.
-</p>
-<p>
-A common workaround for this problem is to store the result in a volatile
-variable, which keeps the compiler from optimizing the call away.
-</p>
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1</pre></td>
- <td class="listing_code"><pre class="programlisting"><span class="keyword">volatile</span><span class="normal"> </span><span class="usertype">GType</span><span class="normal"> dummy </span><span class="symbol">=</span><span class="normal"> GTK_TYPE_BLAH</span><span class="symbol">;</span></pre></td>
- </tr>
- </tbody>
- </table>
-</div>
-
-<p>
-</p>
-</td>
-</tr>
-<tr class="question">
-<td align="left" valign="top">
-<a name="id521686"></a><a name="id521689"></a><p><b>1.15.</b></p>
-</td>
-<td align="left" valign="top"><p>
-How do I create a transparent toplevel window ?
-</p></td>
-</tr>
-<tr class="answer">
-<td align="left" valign="top"></td>
-<td align="left" valign="top">
-<p>
-To make a window transparent, it needs to use a visual which supports that.
-This is done by getting the RGBA visual of the screen with
-<a href="http://developer.gnome.org/gdk/GdkScreen.html#gdk-screen-get-rgba-visual"><code class="function">gdk_screen_get_rgba_visual()</code></a> and setting it on the window. Note that
-<a href="http://developer.gnome.org/gdk/GdkScreen.html#gdk-screen-get-rgba-visual"><code class="function">gdk_screen_get_rgba_visual()</code></a> will return <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if transparent windows
-are not supported on the screen, you should fall back to
-<a href="http://developer.gnome.org/gdk/GdkScreen.html#gdk-screen-get-system-visual"><code class="function">gdk_screen_get_system_visual()</code></a> in that case. Additionally, note that this
-will change from screen to screen, so it needs to be repeated whenever the
-window is moved to a different screen.
-</p>
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1
-2
-3
-4
-5
-6
-7</pre></td>
- <td class="listing_code"><pre class="programlisting"><span class="usertype">GdkVisual</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">visual</span><span class="symbol">;</span>
-
-<span class="normal">visual </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="http://developer.gnome.org/gdk/GdkScreen.html#gdk-screen-get-rgba-visual">gdk_screen_get_rgba_visual</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">screen</span><span class="symbol">);</span>
-<span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">visual </span><span class="symbol">==</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">)</span>
-<span class="normal"> visual </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="http://developer.gnome.org/gdk/GdkScreen.html#gdk-screen-get-system-visual">gdk_screen_get_system_visual</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">screen</span><span class="symbol">);</span>
-
-<span class="function"><a href="GtkWidget.html#gtk-widget-set-visual">gtk_widget_set_visual</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">GTK_WIDGET</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">window</span><span class="symbol">),</span><span class="normal"> visual</span><span class="symbol">);</span></pre></td>
- </tr>
- </tbody>
- </table>
-</div>
-
-<p>
-To fill the alpha channel on the window simply use cairos
-RGBA drawing capabilities.
-</p>
-<p>
-Note that the presence of an RGBA visual is no guarantee that the
-window will actually appear transparent on screen. On X11, this
-requires a compositing manager to be running. See
-<a class="link" href="GtkWidget.html#gtk-widget-is-composited" title="gtk_widget_is_composited ()"><code class="function">gtk_widget_is_composited()</code></a> for a way to find out if the alpha
-channel will be respected.
-</p>
-</td>
-</tr>
-<tr class="qandadiv"><td align="left" valign="top" colspan="2"><h5 class="title">
-<a name="id521769"></a>2. Which widget should I use...</h5></td></tr>
-<tr class="question">
-<td align="left" valign="top">
-<a name="id521774"></a><a name="id521776"></a><p><b>2.1.</b></p>
-</td>
-<td align="left" valign="top"><p>
-...for lists and trees?
-</p></td>
-</tr>
-<tr class="answer">
-<td align="left" valign="top"></td>
-<td align="left" valign="top"><p>
-See <a class="link" href="TreeWidget.html" title="Tree and List Widget Overview">tree widget overview</a> — you
-should use the <a class="link" href="GtkTreeView.html" title="GtkTreeView"><span class="type">GtkTreeView</span></a> widget. (A list is just a tree with no branches,
-so the tree widget is used for lists as well).
-</p></td>
-</tr>
-<tr class="question">
-<td align="left" valign="top">
-<a name="id521804"></a><a name="id521806"></a><p><b>2.2.</b></p>
-</td>
-<td align="left" valign="top"><p>
-...for multi-line text display or editing?
-</p></td>
-</tr>
-<tr class="answer">
-<td align="left" valign="top"></td>
-<td align="left" valign="top">
-<p>
-See <a class="link" href="TextWidget.html" title="Text Widget Overview">text widget overview</a> — you
-should use the <a class="link" href="GtkTextView.html" title="GtkTextView"><span class="type">GtkTextView</span></a> widget.
-</p>
-<p>
-If you only have a small amount of text, <a class="link" href="GtkLabel.html" title="GtkLabel"><span class="type">GtkLabel</span></a> may also be appropriate
-of course. It can be made selectable with <a class="link" href="GtkLabel.html#gtk-label-set-selectable" title="gtk_label_set_selectable ()"><code class="function">gtk_label_set_selectable()</code></a>. For a
-single-line text entry, see <a class="link" href="GtkEntry.html" title="GtkEntry"><span class="type">GtkEntry</span></a>.
-</p>
-</td>
-</tr>
-<tr class="question">
-<td align="left" valign="top">
-<a name="id521861"></a><a name="id521863"></a><p><b>2.3.</b></p>
-</td>
-<td align="left" valign="top"><p>
-...to display an image or animation?
-</p></td>
-</tr>
-<tr class="answer">
-<td align="left" valign="top"></td>
-<td align="left" valign="top"><p>
-<a class="link" href="GtkImage.html" title="GtkImage"><span class="type">GtkImage</span></a> can display images in just about any format GTK+ understands.
-You can also use <a class="link" href="GtkDrawingArea.html" title="GtkDrawingArea"><span class="type">GtkDrawingArea</span></a> if you need to do something more complex,
-such as draw text or graphics over the top of the image.
-</p></td>
-</tr>
-<tr class="question">
-<td align="left" valign="top">
-<a name="id521891"></a><a name="id521894"></a><p><b>2.4.</b></p>
-</td>
-<td align="left" valign="top"><p>
-...for presenting a set of mutually-exclusive choices, where Windows
-would use a combo box?
-</p></td>
-</tr>
-<tr class="answer">
-<td align="left" valign="top"></td>
-<td align="left" valign="top"><p>
-With GTK+, a <a class="link" href="GtkComboBox.html" title="GtkComboBox"><span class="type">GtkComboBox</span></a> is the recommended widget to use for this use case.
-This widget looks like either a combo box or the current option menu, depending
-on the current theme. If you need an editable text entry, use the
-<a class="link" href="GtkComboBox.html#GtkComboBox--has-entry" title='The "has-entry" property'><span class="type">"has-entry"</span></a> property.
-</p></td>
-</tr>
-<tr class="qandadiv"><td align="left" valign="top" colspan="2"><h5 class="title">
-<a name="id521925"></a>3. GtkWidget</h5></td></tr>
-<tr class="question">
-<td align="left" valign="top">
-<a name="id521930"></a><a name="id521932"></a><p><b>3.1.</b></p>
-</td>
-<td align="left" valign="top"><p>
-How do I change the color of a widget?
-</p></td>
-</tr>
-<tr class="answer">
-<td align="left" valign="top"></td>
-<td align="left" valign="top">
-<p>
-See <a class="link" href="GtkWidget.html#gtk-widget-override-color" title="gtk_widget_override_color ()"><code class="function">gtk_widget_override_color()</code></a> and <a class="link" href="GtkWidget.html#gtk-widget-override-background-color" title="gtk_widget_override_background_color ()"><code class="function">gtk_widget_override_background_color()</code></a>.
-You can also change the appearance of a widget by installing a
-custom style provider, see <a class="link" href="GtkStyleContext.html#gtk-style-context-add-provider" title="gtk_style_context_add_provider ()"><code class="function">gtk_style_context_add_provider()</code></a>.
-</p>
-<p>To change the background color for widgets such as <a class="link" href="GtkLabel.html" title="GtkLabel"><span class="type">GtkLabel</span></a> that
-have no background, place them in a <a class="link" href="GtkEventBox.html" title="GtkEventBox"><span class="type">GtkEventBox</span></a> and set the background
-of the event box.
-</p>
-</td>
-</tr>
-<tr class="question">
-<td align="left" valign="top">
-<a name="id521989"></a><a name="id521992"></a><p><b>3.2.</b></p>
-</td>
-<td align="left" valign="top"><p>
-How do I change the font of a widget?
-</p></td>
-</tr>
-<tr class="answer">
-<td align="left" valign="top"></td>
-<td align="left" valign="top">
-<p>
-This has several possible answers, depending on what exactly you want to
-achieve. One option is <a class="link" href="GtkWidget.html#gtk-widget-override-font" title="gtk_widget_override_font ()"><code class="function">gtk_widget_override_font()</code></a>.
-</p>
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1
-2
-3
-4</pre></td>
- <td class="listing_code"><pre class="programlisting"><span class="usertype">PangoFontDesc</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">font_desc </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="/home/mclasen/gnome/share/gtk-doc/html/pango/pango-Fonts.html#pango-font-description-new">pango_font_description_new</a></span><span class="normal"> </span><span class="symbol">();</span>
-<span class="function"><a href="/home/mclasen/gnome/share/gtk-doc/html/pango/pango-Fonts.html#pango-font-description-set-size">pango_font_description_set_size</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">font_desc</span><span class="symbol">,</span><span class="normal"> </span><span class="number">40</span><span class="symbol">);</span>
-<span class="function"><a href="GtkWidget.html#gtk-widget-override-font">gtk_widget_override_font</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">widget</span><span class="symbol">,</span><span class="normal"> font</span><span class="symbol">);</span>
-<span class="function"><a href="/home/mclasen/gnome/share/gtk-doc/html/pango/pango-Fonts.html#pango-font-description-free">pango_font_description_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">font_desc</span><span class="symbol">);</span></pre></td>
- </tr>
- </tbody>
- </table>
-</div>
-
-<p>
-</p>
-<p>
-If you want to make the text of a label larger, you can use
-<a class="link" href="GtkLabel.html#gtk-label-set-markup" title="gtk_label_set_markup ()"><code class="function">gtk_label_set_markup()</code></a>:
-</p>
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1</pre></td>
- <td class="listing_code"><pre class="programlisting"><span class="function"><a href="GtkLabel.html#gtk-label-set-markup">gtk_label_set_markup</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">label</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"&lt;big&gt;big text&lt;/big&gt;"</span><span class="symbol">);</span></pre></td>
- </tr>
- </tbody>
- </table>
-</div>
-
-<p>
-This is preferred for many apps because it's a relative size to the
-user's chosen font size. See <a href="http://library.gnome.org/devel/glib/unstable/glib-Simple-XML-Subset-Parser.html#g-markup-escape-text"><code class="function">g_markup_escape_text()</code></a> if you are
-constructing such strings on the fly.
-</p>
-<p>
-You can also change the font of a widget by putting
-</p>
-<pre class="programlisting">
- .my-widget-class {
- font: Sans 30;
- }
-</pre>
-<p>
-in a CSS file, loading it with <a class="link" href="GtkCssProvider.html#gtk-css-provider-load-from-file" title="gtk_css_provider_load_from_file ()"><code class="function">gtk_css_provider_load_from_file()</code></a>, and
-adding the provider with <a class="link" href="GtkStyleContext.html#gtk-style-context-add-provider-for-screen" title="gtk_style_context_add_provider_for_screen ()"><code class="function">gtk_style_context_add_provider_for_screen()</code></a>.
-To associate this style information with your widget, set a style class
-on its <a class="link" href="GtkStyleContext.html" title="GtkStyleContext"><span class="type">GtkStyleContext</span></a> using <a class="link" href="GtkStyleContext.html#gtk-style-context-add-class" title="gtk_style_context_add_class ()"><code class="function">gtk_style_context_add_class()</code></a>.
-The advantage of this approach is that users can then override the font
-you have chosen. See the <a class="link" href="GtkStyleContext.html" title="GtkStyleContext"><span class="type">GtkStyleContext</span></a> documentation for more discussion.
-</p>
-</td>
-</tr>
-<tr class="question">
-<td align="left" valign="top">
-<a name="id522108"></a><a name="id522110"></a><p><b>3.3.</b></p>
-</td>
-<td align="left" valign="top"><p>
-How do I disable/ghost/desensitize a widget?
-</p></td>
-</tr>
-<tr class="answer">
-<td align="left" valign="top"></td>
-<td align="left" valign="top"><p>
-In GTK+ a disabled widget is termed "insensitive."
-See <a class="link" href="GtkWidget.html#gtk-widget-set-sensitive" title="gtk_widget_set_sensitive ()"><code class="function">gtk_widget_set_sensitive()</code></a>.
-</p></td>
-</tr>
-<tr class="qandadiv"><td align="left" valign="top" colspan="2"><h5 class="title">
-<a name="id522132"></a>4. GtkTextView</h5></td></tr>
-<tr class="question">
-<td align="left" valign="top">
-<a name="id522137"></a><a name="id522139"></a><p><b>4.1.</b></p>
-</td>
-<td align="left" valign="top"><p>
-How do I get the contents of the entire text widget as a string?
-</p></td>
-</tr>
-<tr class="answer">
-<td align="left" valign="top"></td>
-<td align="left" valign="top">
-<p>
-See <a class="link" href="GtkTextBuffer.html#gtk-text-buffer-get-bounds" title="gtk_text_buffer_get_bounds ()"><code class="function">gtk_text_buffer_get_bounds()</code></a> and <a class="link" href="GtkTextBuffer.html#gtk-text-buffer-get-text" title="gtk_text_buffer_get_text ()"><code class="function">gtk_text_buffer_get_text()</code></a>
-or <a class="link" href="GtkTextIter.html#gtk-text-iter-get-text" title="gtk_text_iter_get_text ()"><code class="function">gtk_text_iter_get_text()</code></a>.
-</p>
-<p>
-</p>
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1
-2
-3
-4
-5
-6
-7
-8
-9</pre></td>
- <td class="listing_code"><pre class="programlisting"><span class="usertype">GtkTextIter</span><span class="normal"> start</span><span class="symbol">,</span><span class="normal"> end</span><span class="symbol">;</span>
-<span class="usertype">GtkTextBuffer</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">buffer</span><span class="symbol">;</span>
-<span class="type">char</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">text</span><span class="symbol">;</span>
-
-<span class="normal">buffer </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="GtkTextView.html#gtk-text-view-get-buffer">gtk_text_view_get_buffer</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">GTK_TEXT_VIEW</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">text_view</span><span class="symbol">));</span>
-<span class="function"><a href="GtkTextBuffer.html#gtk-text-buffer-get-bounds">gtk_text_buffer_get_bounds</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">buffer</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">start</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">end</span><span class="symbol">);</span>
-<span class="normal">text </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="GtkTextIter.html#gtk-text-iter-get-text">gtk_text_iter_get_text</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">start</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">end</span><span class="symbol">);</span>
-<span class="comment">/* use text */</span>
-<span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free">g_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">text</span><span class="symbol">);</span></pre></td>
- </tr>
- </tbody>
- </table>
-</div>
-
-<p>
-</p>
-</td>
-</tr>
-<tr class="question">
-<td align="left" valign="top">
-<a name="id522192"></a><a name="id522195"></a><p><b>4.2.</b></p>
-</td>
-<td align="left" valign="top"><p>
-How do I make a text widget display its complete contents in a specific font?
-</p></td>
-</tr>
-<tr class="answer">
-<td align="left" valign="top"></td>
-<td align="left" valign="top">
-<p>
-If you use <a class="link" href="GtkTextBuffer.html#gtk-text-buffer-insert-with-tags" title="gtk_text_buffer_insert_with_tags ()"><code class="function">gtk_text_buffer_insert_with_tags()</code></a> with appropriate tags to
-select the font, the inserted text will have the desired appearance, but
-text typed in by the user before or after the tagged block will appear in
-the default style.
-</p>
-<p>
-To ensure that all text has the desired appearance, use
-<a class="link" href="GtkWidget.html#gtk-widget-override-font" title="gtk_widget_override_font ()"><code class="function">gtk_widget_override_font()</code></a> to change the default font for the widget.
-</p>
-</td>
-</tr>
-<tr class="question">
-<td align="left" valign="top">
-<a name="id522230"></a><a name="id522232"></a><p><b>4.3.</b></p>
-</td>
-<td align="left" valign="top"><p>
-How do I make a text view scroll to the end of the buffer automatically ?
-</p></td>
-</tr>
-<tr class="answer">
-<td align="left" valign="top"></td>
-<td align="left" valign="top">
-<p>
-A good way to keep a text buffer scrolled to the end is to place a
-<a class="link" href="GtkTextMark.html" title="GtkTextMark">mark</a> at the end of the buffer, and
-give it right gravity. The gravity has the effect that text inserted
-at the mark gets inserted <span class="emphasis"><em>before</em></span>, keeping the mark
-at the end.
-</p>
-<p>
-To ensure that the end of the buffer remains visible, use
-<a class="link" href="GtkTextView.html#gtk-text-view-scroll-to-mark" title="gtk_text_view_scroll_to_mark ()"><code class="function">gtk_text_view_scroll_to_mark()</code></a> to scroll to the mark after
-inserting new text.
-</p>
-<p>
-The gtk-demo application contains an example of this technique.
-</p>
-</td>
-</tr>
-<tr class="qandadiv"><td align="left" valign="top" colspan="2"><h5 class="title">
-<a name="id522279"></a>5. <a class="link" href="GtkTreeView.html" title="GtkTreeView"><span class="type">GtkTreeView</span></a>
-</h5></td></tr>
-<tr class="question">
-<td align="left" valign="top">
-<a name="id522288"></a><a name="id522291"></a><p><b>5.1.</b></p>
-</td>
-<td align="left" valign="top"><p>
-How do I associate some data with a row in the tree?
-</p></td>
-</tr>
-<tr class="answer">
-<td align="left" valign="top"></td>
-<td align="left" valign="top"><p>
-Remember that the <a class="link" href="GtkTreeModel.html" title="GtkTreeModel"><span class="type">GtkTreeModel</span></a> columns don't necessarily have to be
-displayed. So you can put non-user-visible data in your model just
-like any other data, and retrieve it with <a class="link" href="GtkTreeModel.html#gtk-tree-model-get" title="gtk_tree_model_get ()"><code class="function">gtk_tree_model_get()</code></a>.
-See the <a class="link" href="TreeWidget.html" title="Tree and List Widget Overview">tree widget overview</a>.
-</p></td>
-</tr>
-<tr class="question">
-<td align="left" valign="top">
-<a name="id522328"></a><a name="id522330"></a><p><b>5.2.</b></p>
-</td>
-<td align="left" valign="top"><p>
-How do I put an image and some text in the same column?
-</p></td>
-</tr>
-<tr class="answer">
-<td align="left" valign="top"></td>
-<td align="left" valign="top"><p>
-You can pack more than one <a class="link" href="GtkCellRenderer.html" title="GtkCellRenderer"><span class="type">GtkCellRenderer</span></a> into a single <a class="link" href="GtkTreeViewColumn.html" title="GtkTreeViewColumn"><span class="type">GtkTreeViewColumn</span></a>
-using <a class="link" href="GtkTreeViewColumn.html#gtk-tree-view-column-pack-start" title="gtk_tree_view_column_pack_start ()"><code class="function">gtk_tree_view_column_pack_start()</code></a> or <a class="link" href="GtkTreeViewColumn.html#gtk-tree-view-column-pack-end" title="gtk_tree_view_column_pack_end ()"><code class="function">gtk_tree_view_column_pack_end()</code></a>.
-So pack both a <a class="link" href="GtkCellRendererPixbuf.html" title="GtkCellRendererPixbuf"><span class="type">GtkCellRendererPixbuf</span></a> and a <a class="link" href="GtkCellRendererText.html" title="GtkCellRendererText"><span class="type">GtkCellRendererText</span></a> into the
-column.
-</p></td>
-</tr>
-<tr class="question">
-<td align="left" valign="top">
-<a name="id522392"></a><a name="id522394"></a><p><b>5.3.</b></p>
-</td>
-<td align="left" valign="top"><p>
-I can set data easily on my <a class="link" href="GtkTreeStore.html" title="GtkTreeStore"><span class="type">GtkTreeStore</span></a>/<a class="link" href="GtkListStore.html" title="GtkListStore"><span class="type">GtkListStore</span></a> models using
-<a class="link" href="GtkListStore.html#gtk-list-store-set" title="gtk_list_store_set ()"><code class="function">gtk_list_store_set()</code></a> and <a class="link" href="GtkTreeStore.html#gtk-tree-store-set" title="gtk_tree_store_set ()"><code class="function">gtk_tree_store_set()</code></a>, but can't read it back?
-</p></td>
-</tr>
-<tr class="answer">
-<td align="left" valign="top"></td>
-<td align="left" valign="top"><p>
-Both the <a class="link" href="GtkTreeStore.html" title="GtkTreeStore"><span class="type">GtkTreeStore</span></a> and the <a class="link" href="GtkListStore.html" title="GtkListStore"><span class="type">GtkListStore</span></a> implement the <a class="link" href="GtkTreeModel.html" title="GtkTreeModel"><span class="type">GtkTreeModel</span></a>
-interface. Consequentially, you can use any function this interface
-implements. The easiest way to read a set of data back is to use
-<a class="link" href="GtkTreeModel.html#gtk-tree-model-get" title="gtk_tree_model_get ()"><code class="function">gtk_tree_model_get()</code></a>.
-</p></td>
-</tr>
-<tr class="question">
-<td align="left" valign="top">
-<a name="id522472"></a><a name="id522475"></a><p><b>5.4.</b></p>
-</td>
-<td align="left" valign="top"><p>
-How do I change the way that numbers are formatted by <a class="link" href="GtkTreeView.html" title="GtkTreeView"><span class="type">GtkTreeView</span></a>?
-</p></td>
-</tr>
-<tr class="answer">
-<td align="left" valign="top"></td>
-<td align="left" valign="top">
-<p>
-Use <a class="link" href="GtkTreeView.html#gtk-tree-view-insert-column-with-data-func" title="gtk_tree_view_insert_column_with_data_func ()"><code class="function">gtk_tree_view_insert_column_with_data_func()</code></a>
-or <a class="link" href="GtkTreeViewColumn.html#gtk-tree-view-column-set-cell-data-func" title="gtk_tree_view_column_set_cell_data_func ()"><code class="function">gtk_tree_view_column_set_cell_data_func()</code></a> and do the conversion
-from number to string yourself (with, say, <a href="http://library.gnome.org/devel/glib/unstable/glib-String-Utility-Functions.html#g-strdup-printf"><code class="function">g_strdup_printf()</code></a>).
-</p>
-<p>
-The following example demonstrates this:
-</p>
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>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</pre></td>
- <td class="listing_code"><pre class="programlisting"><span class="keyword">enum</span>
-<span class="cbracket">{</span>
-<span class="normal"> DOUBLE_COLUMN</span><span class="symbol">,</span>
-<span class="normal"> N_COLUMNS</span>
-<span class="cbracket">}</span><span class="symbol">;</span>
-
-<span class="usertype">GtkListStore</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">mycolumns</span><span class="symbol">;</span>
-<span class="usertype">GtkTreeView</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">treeview</span><span class="symbol">;</span>
-
-<span class="type">void</span>
-<span class="function">my_cell_double_to_text</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GtkTreeViewColumn</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">tree_column</span><span class="symbol">,</span>
-<span class="normal"> </span><span class="usertype">GtkCellRenderer</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">cell</span><span class="symbol">,</span>
-<span class="normal"> </span><span class="usertype">GtkTreeModel</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">tree_model</span><span class="symbol">,</span>
-<span class="normal"> </span><span class="usertype">GtkTreeIter</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">iter</span><span class="symbol">,</span>
-<span class="normal"> </span><span class="usertype">gpointer</span><span class="normal"> data</span><span class="symbol">)</span>
-<span class="cbracket">{</span>
-<span class="normal"> </span><span class="usertype">GtkCellRendererText</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">cell_text </span><span class="symbol">=</span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="GtkCellRendererText.html">GtkCellRendererText</a> </span><span class="symbol">*)</span><span class="normal">cell</span><span class="symbol">;</span>
-<span class="normal"> </span><span class="usertype">gdouble</span><span class="normal"> d</span><span class="symbol">;</span>
-<span class="normal"> </span><span class="usertype">gchar</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">text</span><span class="symbol">;</span>
-
-<span class="normal"> </span><span class="comment">/* Get the double value from the model. */</span>
-<span class="normal"> </span><span class="function"><a href="GtkTreeModel.html#gtk-tree-model-get">gtk_tree_model_get</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">tree_model</span><span class="symbol">,</span><span class="normal"> iter</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint">gint</a></span><span class="symbol">)</span><span class="normal">data</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">d</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">-</span><span class="number">1</span><span class="symbol">);</span>
-<span class="normal"> </span><span class="comment">/* Now we can format the value ourselves. */</span>
-<span class="normal"> text </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-String-Utility-Functions.html#g-strdup-printf">g_strdup_printf</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"%.2f"</span><span class="symbol">,</span><span class="normal"> d</span><span class="symbol">);</span>
-<span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-set">g_object_set</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">cell</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"text"</span><span class="symbol">,</span><span class="normal"> text</span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">);</span>
-<span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free">g_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">text</span><span class="symbol">);</span>
-<span class="cbracket">}</span>
-
-<span class="type">void</span>
-<span class="function">set_up_new_columns</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GtkTreeView</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">myview</span><span class="symbol">)</span>
-<span class="cbracket">{</span>
-<span class="normal"> </span><span class="usertype">GtkCellRendererText</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">renderer</span><span class="symbol">;</span>
-<span class="normal"> </span><span class="usertype">GtkTreeViewColumn</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">column</span><span class="symbol">;</span>
-<span class="normal"> </span><span class="usertype">GtkListStore</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">mycolumns</span><span class="symbol">;</span>
-
-<span class="normal"> </span><span class="comment">/* Create the data model and associate it with the given TreeView */</span>
-<span class="normal"> mycolumns </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="GtkListStore.html#gtk-list-store-new">gtk_list_store_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">N_COLUMNS</span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-DOUBLE:CAPS">G_TYPE_DOUBLE</a></span><span class="symbol">);</span>
-<span class="normal"> </span><span class="function"><a href="GtkTreeView.html#gtk-tree-view-set-model">gtk_tree_view_set_model</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">myview</span><span class="symbol">,</span><span class="normal"> </span><span class="function">GTK_TREE_MODEL</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">mycolumns</span><span class="symbol">));</span>
-
-<span class="normal"> </span><span class="comment">/* Create a GtkCellRendererText */</span>
-<span class="normal"> renderer </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="GtkCellRendererText.html#gtk-cell-renderer-text-new">gtk_cell_renderer_text_new</a></span><span class="normal"> </span><span class="symbol">();</span>
-
-<span class="normal"> </span><span class="comment">/* Create a new column that has a title ("Example column"),</span>
-<span class="comment"> * uses the above created renderer that will render the double</span>
-<span class="comment"> * value into text from the associated model's rows.</span>
-<span class="comment"> */</span>
-<span class="normal"> column </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="GtkTreeViewColumn.html#gtk-tree-view-column-new">gtk_tree_view_column_new</a></span><span class="normal"> </span><span class="symbol">();</span>
-<span class="normal"> </span><span class="function"><a href="GtkTreeViewColumn.html#gtk-tree-view-column-set-title">gtk_tree_view_column_set_title</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">column</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"Example column"</span><span class="symbol">);</span>
-<span class="normal"> renderer </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="GtkCellRendererText.html#gtk-cell-renderer-text-new">gtk_cell_renderer_text_new</a></span><span class="normal"> </span><span class="symbol">();</span>
-<span class="normal"> </span><span class="function"><a href="GtkTreeViewColumn.html#gtk-tree-view-column-pack-start">gtk_tree_view_column_pack_start</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">column</span><span class="symbol">,</span><span class="normal"> renderer</span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS">TRUE</a></span><span class="symbol">);</span>
-
-<span class="normal"> </span><span class="comment">/* Append the new column after the GtkTreeView's previous columns. */</span>
-<span class="normal"> </span><span class="function"><a href="GtkTreeView.html#gtk-tree-view-append-column">gtk_tree_view_append_column</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">GTK_TREE_VIEW</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">myview</span><span class="symbol">),</span><span class="normal"> column</span><span class="symbol">);</span>
-<span class="normal"> </span><span class="comment">/* Since we created the column by hand, we can set it up for our</span>
-<span class="comment"> * needs, e.g. set its minimum and maximum width, etc.</span>
-<span class="comment"> */</span>
-<span class="normal"> </span><span class="comment">/* Set up a custom function that will be called when the column content</span>
-<span class="comment"> * is rendered. We use the func_data pointer as an index into our</span>
-<span class="comment"> * model. This is convenient when using multi column lists.</span>
-<span class="comment"> */</span>
-<span class="normal"> </span><span class="function"><a href="GtkTreeViewColumn.html#gtk-tree-view-column-set-cell-data-func">gtk_tree_view_column_set_cell_data_func</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">column</span><span class="symbol">,</span><span class="normal"> renderer</span><span class="symbol">,</span>
-<span class="normal"> my_cell_double_to_text</span><span class="symbol">,</span>
-<span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer">gpointer</a></span><span class="symbol">)</span><span class="normal">DOUBLE_COLUMN</span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">);</span>
-<span class="cbracket">}</span></pre></td>
- </tr>
- </tbody>
- </table>
-</div>
-
-<p>
-</p>
-</td>
-</tr>
-<tr class="question">
-<td align="left" valign="top">
-<a name="id522556"></a><a name="id522559"></a><p><b>5.5.</b></p>
-</td>
-<td align="left" valign="top"><p>
-How do I hide the expander arrows in my tree view ?
-</p></td>
-</tr>
-<tr class="answer">
-<td align="left" valign="top"></td>
-<td align="left" valign="top"><p>
-Set the expander-column property of the tree view to a hidden column.
-See <a class="link" href="GtkTreeView.html#gtk-tree-view-set-expander-column" title="gtk_tree_view_set_expander_column ()"><code class="function">gtk_tree_view_set_expander_column()</code></a> and <a class="link" href="GtkTreeViewColumn.html#gtk-tree-view-column-set-visible" title="gtk_tree_view_column_set_visible ()"><code class="function">gtk_tree_view_column_set_visible()</code></a>.
-</p></td>
-</tr>
-<tr class="qandadiv"><td align="left" valign="top" colspan="2"><h5 class="title">
-<a name="id522590"></a>6. Using cairo with GTK+</h5></td></tr>
-<tr class="question">
-<td align="left" valign="top">
-<a name="id522595"></a><a name="id522598"></a><p><b>6.1.</b></p>
-</td>
-<td align="left" valign="top"><p>
-How do I use cairo to draw in GTK+ applications ?
-</p></td>
-</tr>
-<tr class="answer">
-<td align="left" valign="top"></td>
-<td align="left" valign="top">
-<p>
-The <a class="link" href="GtkWidget.html#GtkWidget-draw" title='The "draw" signal'><span class="type">"draw"</span></a> signal gets a ready-to-use cairo context
-as parameter that you should use.
-</p>
-<p>
-All drawing in GTK+ is normally done in a draw handler, and GTK+
-creates a temporary pixmap for double-buffering the drawing.
-It is possible to turn off double-buffering, with
-<a class="link" href="GtkWidget.html#gtk-widget-set-double-buffered" title="gtk_widget_set_double_buffered ()"><code class="function">gtk_widget_set_double_buffered()</code></a>, but this is not ideal,
-since it can cause some flickering.
-</p>
-</td>
-</tr>
-<tr class="question">
-<td align="left" valign="top">
-<a name="id522632"></a><a name="id522635"></a><p><b>6.2.</b></p>
-</td>
-<td align="left" valign="top"><p>
-Can I improve the performance of my application by using the
-Glitz or GL backend of cairo ?
-</p></td>
-</tr>
-<tr class="answer">
-<td align="left" valign="top"></td>
-<td align="left" valign="top"><p>
-No. The GDK X11 backend uses the cairo X backend (and the other
-GDK backends use their respective native cairo backends). The
-GTK+ developers believe that the best way to improving the GDK
-drawing performance is to optimize the cairo X backend and the
-relevant code paths in the X server that is uses (mostly the
-Render extension).
-</p></td>
-</tr>
-<tr class="question">
-<td align="left" valign="top">
-<a name="id522649"></a><a name="id522651"></a><p><b>6.3.</b></p>
-</td>
-<td align="left" valign="top"><p>
-Can I use cairo to draw on a <a href="http://library.gnome.org/devel/gdk-pixbuf/unstable/gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> ?
-</p></td>
-</tr>
-<tr class="answer">
-<td align="left" valign="top"></td>
-<td align="left" valign="top"><p>
-No, at least not yet. The cairo image surface does not support the
-pixel format used by GdkPixbuf.
-</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-</div>
-<div class="footnotes">
-<br><hr width="100" align="left">
-<div class="footnote"><p><sup>[<a id="ftn.id521412" href="#id521412" class="para">1</a>] </sup> If the file load fails,
-<a class="link" href="GtkImage.html#gtk-image-new-from-file" title="gtk_image_new_from_file ()"><code class="function">gtk_image_new_from_file()</code></a> will display no image graphic — to detect
-a failed load yourself, use <a href="http://library.gnome.org/devel/gdk-pixbuf/unstable/gdk-pixbuf-File-Loading.html#gdk-pixbuf-new-from-file"><code class="function">gdk_pixbuf_new_from_file()</code></a> directly, then
-<a class="link" href="GtkImage.html#gtk-image-new-from-pixbuf" title="gtk_image_new_from_pixbuf ()"><code class="function">gtk_image_new_from_pixbuf()</code></a>.</p></div>
-</div>
-</div>
-<div class="footer">
-<hr>
- Generated by GTK-Doc V1.18.1</div>
-</body>
-</html> \ No newline at end of file